:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#16223c;--navy-deep:#0f1830;--coral:#2563eb;--coral-hover:#1d4ed8;--coral-soft:#2563eb1a;--sky:#c7d2fe;--mint-bg:#d8e0ed;--white:#fff;--info-bg:#e7eeff;--muted:#64748b;--placeholder:#9aa7ae;--line:#d8dee8;--line-soft:#eaeef4;--slate-50:#f1f4f9;--note-bg:#fef3c7;--note-border:#fde68a;--note-text:#78350f;--font-display:"Sora", system-ui, sans-serif;--font-body:"Inter", -apple-system, system-ui, "Segoe UI", Roboto, sans-serif;--font-serif:Georgia, "Iowan Old Style", "Times New Roman", serif;--r-lg:14px;--r-md:10px;--r-sm:8px;--sh-sm:0 1px 3px #16223c14, 0 1px 2px #16223c0f;--sh-md:0 4px 6px -1px #16223c1a, 0 2px 4px -2px #16223c1a;--sh-lg:0 10px 15px -3px #16223c1f, 0 4px 6px -4px #16223c1a;--sh-cta:0 6px 16px -8px #2563eb80}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;font-family:var(--font-body);background:var(--mint-bg);color:var(--navy);padding:68px 24px 64px}.page{background:var(--white);border-radius:var(--r-lg);max-width:800px;box-shadow:var(--sh-lg);min-height:60vh;margin:0 auto;padding:72px 48px;overflow:visible}.page.wide{max-width:none}.block{border-radius:var(--r-md);flex-direction:column;align-items:flex-start;margin:0 16px;transition:background .12s;display:flex;position:relative}.block:hover,.block:focus-within{background:var(--slate-50)}.block .editor{width:fit-content;max-width:100%;color:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:none;outline:none;padding:0;font-family:inherit;line-height:1.7}.block .editor:empty:before{content:attr(data-placeholder);color:var(--placeholder);pointer-events:none}.block[data-type=h1]{margin-top:8px;margin-bottom:4px}.block[data-type=h2]{margin-top:40px;margin-bottom:8px}.block[data-type=h3]{margin-top:28px;margin-bottom:4px}.block[data-type=p]{margin-bottom:14px}.block[data-type=h1] .editor{font-family:var(--font-display);color:var(--navy);font-size:2.1rem;font-weight:800;line-height:1.2}.block[data-type=h2] .editor{font-family:var(--font-display);color:var(--navy);font-size:1.6rem;font-weight:700;line-height:1.3}.block[data-type=h3] .editor{font-family:var(--font-display);color:var(--navy);font-size:1.25rem;font-weight:700;line-height:1.35}.block[data-type=p] .editor{font-family:var(--font-serif);color:var(--navy);font-size:1rem;font-weight:400;line-height:1.7}.block[data-type=note]{background:var(--note-bg);border:1px solid var(--note-border);border-radius:var(--r-md);box-shadow:var(--sh-sm);align-self:stretch;margin:14px 16px;padding:10px 14px}.block[data-type=note]:hover,.block[data-type=note]:focus-within{background:var(--note-bg)}.block[data-type=note] .editor{font-family:var(--font-body);color:var(--note-text);width:100%;font-size:.95rem;font-weight:500;line-height:1.6}.block[data-type=note] .editor:empty:before{color:#b45309}.cite{vertical-align:super;color:var(--coral);cursor:pointer;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;background:0 0;margin:0 1px;font-size:.65em;font-weight:600;line-height:1;transition:color .12s;display:inline}.cite:before{content:"["}.cite:after{content:"]"}.cite:hover{color:var(--coral-hover)}.cite-popover{z-index:50;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);width:320px;max-width:calc(100vw - 24px);padding:8px;display:none;position:absolute}.cite-popover.open{display:block}.cite-popover label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-size:.62rem;font-weight:600;display:block}.cite-popover input{border:1px solid var(--line);border-radius:var(--r-md);width:100%;font:inherit;color:var(--navy);outline:none;padding:7px 9px;font-size:.9rem}.cite-popover input:focus{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-soft)}.popover-list{border:1px solid var(--line);border-radius:var(--r-md);max-height:180px;margin-top:6px;list-style:none;display:none;overflow:hidden auto}.popover-list.open{display:block}.popover-item{cursor:pointer;color:var(--navy);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid var(--line-soft);padding:7px 10px;font-size:.88rem;transition:background .1s;overflow:hidden}.popover-item:last-child{border-bottom:none}.popover-item:hover,.popover-item.selected{background:var(--info-bg);color:var(--coral)}.type-select{z-index:20;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-md);box-shadow:var(--sh-sm);opacity:0;pointer-events:none;flex-direction:column;align-items:stretch;gap:2px;width:32px;padding:2px;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:4px;right:calc(100% + 10px);transform:translate(4px)}.block:focus-within .type-select{opacity:1;pointer-events:auto;transform:translate(0)}.type-opt{color:var(--muted);font:inherit;letter-spacing:.01em;border-radius:var(--r-sm);cursor:pointer;text-align:center;background:0 0;border:none;padding:5px 0;font-size:.63rem;font-weight:600;line-height:1;transition:color .12s,background .12s}.type-opt:hover{color:var(--navy);background:var(--slate-50)}.type-opt.active{color:var(--navy);background:var(--sky);font-weight:700}.type-select .type-opt:not(.active):not(.cite-add){display:none}.type-select:hover .type-opt:not(.cite-add){display:block}.toc{height:calc(100vh - 96px);color:var(--muted);flex-direction:column;padding:10px 6px;font-size:.78rem;display:flex;position:fixed;top:68px;left:24px;right:calc(50vw + 416px)}.toc-section{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.toc-section.collapsed{flex:none}.toc-body{flex:auto;min-height:0;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.toc-head{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:0 4px 6px;display:flex}.toc-caret{color:var(--muted);flex:none;font-size:.6rem;line-height:1;transition:transform .15s}.toc-caret.open{transform:rotate(90deg)}.toc-head:hover .toc-caret,.toc-head:hover .toc-title{color:var(--navy)}.toc-resizer{cursor:row-resize;flex:none;height:9px;margin:2px 4px;position:relative}.toc-resizer:before{content:"";background:var(--line-soft);height:1px;transition:background .12s,height .12s;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.toc-resizer:hover:before{background:var(--coral);height:2px}.toc-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 4px 6px;font-size:.65rem;font-weight:600}.toc-head .toc-title{padding:0}.toc-item{text-align:left;width:100%;font:inherit;color:var(--muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;border-left:2px solid #0000;align-items:baseline;gap:6px;padding:3px 4px;line-height:1.3;transition:background .12s,color .12s;display:flex}.toc-num{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-weight:500}.toc-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.toc-item:hover{background:var(--slate-50);color:var(--navy)}.toc-item:hover .toc-num{color:var(--muted)}.toc-item.active{color:var(--navy);border-left-color:var(--coral);background:var(--slate-50);font-weight:600}.toc-item.active .toc-num{color:var(--navy)}.toc-item[data-level=h1]{color:var(--navy);padding-left:4px;font-weight:600}.toc-item[data-level=h2]{padding-left:10px}.toc-item[data-level=h3]{padding-left:18px;font-size:.73rem}.toc-item.empty .toc-label{color:var(--placeholder);font-style:italic}.toc-sources{margin-top:14px}.src-item{border-radius:var(--r-sm);border-left:2px solid #0000;align-items:baseline;gap:6px;padding:2px 4px;line-height:1.3;display:flex}.src-num{font:inherit;color:var(--coral);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:600;transition:color .12s}.src-num:before{content:"["}.src-num:after{content:"]"}.src-num:hover{color:var(--coral-hover)}.src-input{min-width:0;font:inherit;color:var(--muted);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.75rem}.src-input::placeholder{color:var(--placeholder);font-style:italic}.src-item:focus-within{background:var(--slate-50);border-left-color:var(--coral)}.src-item.target{background:var(--info-bg);border-left-color:var(--coral)}.src-remove{color:var(--placeholder);cursor:pointer;opacity:0;background:0 0;border:none;flex:none;padding:0 2px;font-size:.9rem;line-height:1;transition:opacity .15s,color .15s}.src-item:hover .src-remove,.src-item:focus-within .src-remove{opacity:1}.src-remove:hover{color:var(--coral)}.page-sources{border-top:1px solid var(--line);margin-top:40px;padding-top:24px}.page-sources .src-input{font-size:.95rem}.type-opt.cite-add{color:var(--coral);border-top:1px solid var(--line-soft);border-radius:0 0 var(--r-sm) var(--r-sm);margin-top:2px;padding-top:6px;font-size:.8rem;font-weight:700;display:block!important}.type-opt.cite-add:hover{color:var(--white);background:var(--coral)}@media (width<=1320px){.toc{display:none}}@media (width<=920px){.page{padding:72px 20px}.block{margin:0 8px}}.user-bar{z-index:200;background:var(--white);border-bottom:1px solid var(--line-soft);height:44px;box-shadow:var(--sh-sm);align-items:center;gap:16px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}.user-bar-title{font-family:var(--font-display);color:var(--navy);letter-spacing:.02em;flex-shrink:0;font-size:.78rem;font-weight:600}.user-toggle{align-items:center;gap:6px;margin-left:auto;display:flex}.user-toggle-label{color:var(--muted);flex-shrink:0;font-size:.72rem}.toggle-btn{border:1.5px solid var(--line-soft);background:var(--slate-50);color:var(--muted);font-family:var(--font-body);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.72rem;font-weight:500;transition:all .15s;display:flex}.toggle-btn:hover{color:var(--navy);border-color:var(--line)}.toggle-btn.active{background:var(--info-bg);border-color:var(--coral);color:var(--navy);font-weight:600}.toggle-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.65rem;font-weight:700;display:inline-flex}.toggle-avatar.student{background:var(--sky);color:var(--navy)}.toggle-avatar.professor{color:#991b1b;background:#fee2e2}.mode-switch{background:var(--info-bg);border-color:var(--coral);color:var(--navy);font-weight:600}.mode-switch.professor{background:#fef2f2;border-color:#fca5a5}.mode-switch:hover{border-color:var(--coral);color:var(--navy)}.comment-anchor{z-index:20;position:absolute;top:0;left:calc(100% + 14px)}.comment-trigger{border:1px solid var(--line-soft);background:var(--slate-50);color:var(--muted);cursor:pointer;white-space:nowrap;opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:.8rem;transition:opacity .15s,background .15s,color .15s;display:flex}.block:hover .comment-trigger,.block:focus-within .comment-trigger{opacity:1;pointer-events:auto}.comment-trigger:hover{background:var(--line-soft);color:var(--navy)}.comment-trigger.professor{background:var(--info-bg);border-color:var(--sky);color:var(--navy)}.comment-trigger.professor:hover{background:var(--sky);color:var(--white)}.comment-trigger-label{font-size:.7rem;font-weight:600}.comment-panel{background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-md);width:230px;box-shadow:var(--sh-sm);flex-direction:column;gap:0;display:flex;overflow:hidden}.comment-panel-header{background:var(--slate-50);border-bottom:1px solid var(--line-soft);align-items:center;gap:5px;padding:6px 10px;display:flex}.comment-icon{font-size:.85rem}.comment-count{color:var(--muted);font-size:.7rem;font-weight:600}.comment-thread{flex-direction:column;gap:6px;max-height:220px;padding:8px;display:flex;overflow-y:auto}.comment-thread::-webkit-scrollbar{width:4px}.comment-thread::-webkit-scrollbar-track{background:0 0}.comment-thread::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}.bubble-row{display:flex}.bubble-row.mine{justify-content:flex-end}.bubble{background:var(--slate-50);border:1px solid var(--line-soft);border-radius:var(--r-sm);flex-direction:column;gap:2px;max-width:85%;padding:5px 8px;display:flex}.bubble.mine{background:var(--info-bg);border-color:var(--sky)}.bubble-author{color:var(--muted);font-size:.62rem;font-weight:700;line-height:1}.bubble.mine .bubble-author{color:var(--coral)}.bubble-text{color:var(--navy);word-break:break-word;font-size:.72rem;line-height:1.4}.bubble-time{color:var(--placeholder);text-align:right;font-size:.6rem;line-height:1}.comment-input-row{border-top:1px solid var(--line-soft);align-items:center;gap:4px;padding:6px 8px;display:flex}.comment-input{border:1px solid var(--line-soft);border-radius:var(--r-sm);font-family:var(--font-body);color:var(--navy);background:var(--white);outline:none;flex:1;padding:4px 8px;font-size:.72rem;transition:border-color .15s}.comment-input::placeholder{color:var(--placeholder)}.comment-input:focus{border-color:var(--coral)}.comment-send{background:var(--coral);width:26px;height:26px;color:var(--white);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;transition:background .15s,opacity .15s;display:flex}.comment-send:hover{background:var(--coral-hover)}.comment-send:disabled{background:var(--line);cursor:default;opacity:.6}html[data-debug-outline=true] body *{outline-offset:-1px;outline:1px dashed #ef4444!important}.toc,.minimap{transition:opacity .22s}.toc.mm-hidden{opacity:0;pointer-events:none}.minimap{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-md);width:180px;height:calc(100vh - 96px);box-shadow:var(--sh-sm);z-index:30;opacity:0;pointer-events:none;flex-direction:column;display:flex;position:fixed;top:68px;left:24px;overflow:hidden}.minimap.mm-active{opacity:1;pointer-events:auto}.minimap-content{pointer-events:none;will-change:transform;flex-direction:column;gap:3px;width:100%;padding:4px 4px 4px 11px;display:flex}.mm-row{flex-direction:column;gap:1px;display:flex;position:relative}.mm-heading{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;color:var(--navy);line-height:1.2;overflow:hidden}.mm-heading[data-level=h1]{font-size:11px;font-weight:800}.mm-heading[data-level=h2]{padding-left:6px;font-size:10px;font-weight:700}.mm-heading[data-level=h3]{color:var(--muted);padding-left:12px;font-size:9px;font-weight:700}.mm-para{flex-direction:column;gap:1px;display:flex}.mm-bar{background:var(--line);border-radius:1px;height:1px}.mm-para[data-level=note] .mm-bar{opacity:.6;background:#fbbf24}.mm-dot{border:2px solid var(--white);cursor:pointer;pointer-events:auto;background:#991b1b;border-radius:9999px;width:9px;height:9px;padding:0;transition:transform .15s;position:absolute;top:0;left:-10px}.mm-dot:hover{transform:scale(1.35)}.mm-row.is-heading .mm-dot{top:50%;transform:translateY(-50%)}.mm-row.is-heading .mm-dot:hover{transform:translateY(-50%)scale(1.35)}.minimap-overlay{pointer-events:none;background:#2563eb24;border-radius:3px;transition:top 75ms ease-out,height 75ms ease-out;position:absolute;left:0;right:0}.minimap-overlay.dragging{transition:none}@media (width<=1320px){.minimap{display:none}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--navy:#e6ecf5;--navy-deep:#f0f4fa;--coral:#6398ff;--coral-hover:#82aeff;--coral-soft:#6398ff29;--sky:#2d3f66;--mint-bg:#0e1626;--white:#1b2435;--info-bg:#243150;--muted:#93a1b5;--placeholder:#5c6b82;--line:#2e3a52;--line-soft:#283246;--slate-50:#222c3f;--note-bg:#3a2e12;--note-border:#5a4718;--note-text:#fcd9a0;--sh-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--sh-md:0 4px 6px -1px #00000073, 0 2px 4px -2px #0006;--sh-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #00000073}:root[data-theme=dark] .block[data-type=note] .editor:empty:before{color:#c9962e}.user-bar{position:fixed}.view-seg{background:var(--slate-50);border:1px solid var(--line-soft);border-radius:999px;gap:2px;padding:2px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.view-btn{color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 13px;font-size:.72rem;font-weight:600;transition:color .15s,background .15s,box-shadow .15s}.view-btn:hover{color:var(--navy)}.view-btn.active{background:var(--white);color:var(--navy);box-shadow:var(--sh-sm)}.user-bar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.user-bar-right .user-toggle{margin-left:0}.word-count{color:var(--muted);font-family:var(--font-body);cursor:pointer;white-space:nowrap;border-radius:var(--r-sm);background:0 0;border:none;padding:3px 8px;font-size:.72rem;transition:background .12s,color .12s}.word-count strong{color:var(--navy);font-weight:700}.word-count-sep{opacity:.5;margin:0 4px}.word-count.over .wc-display,.word-count.over .wc-display strong{color:#ef4444}.word-count.goal-reached .wc-display strong{color:#10b981}.word-count-fixed{z-index:200;background:var(--white);border:1px solid var(--line-soft);box-shadow:var(--sh-sm);align-items:center;gap:6px;padding:6px 10px 6px 12px;display:flex;position:fixed;bottom:16px;right:16px}.word-count-fixed:hover{border-color:var(--line)}.word-count-fixed .wc-display{white-space:nowrap}.wc-edit{width:22px;height:22px;color:var(--placeholder);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .12s,background .12s;display:flex}.wc-edit:hover,.wc-edit.active{color:var(--navy);background:var(--slate-50)}.wc-popover{z-index:210;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-md,10px);width:230px;box-shadow:var(--sh-md,var(--sh-sm));flex-direction:column;gap:12px;margin-bottom:8px;padding:14px;display:flex;position:absolute;bottom:100%;right:0}.wc-field{flex-direction:column;gap:5px;display:flex}.wc-field label,.wc-field-label{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.66rem;font-weight:600}.wc-field input{box-sizing:border-box;width:100%;font-family:var(--font-body);color:var(--navy);background:var(--slate-50);border:1px solid var(--line-soft);border-radius:var(--r-sm);outline:none;padding:6px 9px;font-size:.8rem;transition:border-color .12s,background .12s}.wc-field input:focus{border-color:var(--navy);background:var(--white)}.wc-seg{background:var(--slate-50);border-radius:999px;gap:2px;padding:3px;display:flex}.wc-seg-btn{color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:4px 6px;font-size:.66rem;font-weight:600;transition:color .15s,background .15s,box-shadow .15s}.wc-seg-btn:hover{color:var(--navy)}.wc-seg-btn.active{background:var(--white);color:var(--navy);box-shadow:var(--sh-sm)}.theme-toggle{border:1px solid var(--line-soft);background:var(--slate-50);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;line-height:1;transition:color .15s,border-color .15s;display:flex}.theme-toggle:hover{color:var(--navy);border-color:var(--line)}.toc-words{font-variant-numeric:tabular-nums;color:var(--placeholder);opacity:0;flex:none;margin-left:auto;padding-left:6px;font-size:.62rem;transition:opacity .12s}.toc-item:hover .toc-words{opacity:1}.block-wrapper{position:relative}.drag-handle{z-index:15;width:16px;height:22px;color:var(--placeholder);border-radius:var(--r-sm);cursor:grab;-webkit-user-select:none;user-select:none;opacity:0;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:opacity .12s,color .12s,background .12s;display:flex;position:absolute;top:7px;left:-6px}.block-wrapper:hover .drag-handle{opacity:.55}.drag-handle:hover{opacity:1;color:var(--navy);background:var(--slate-50)}.drag-handle:active{cursor:grabbing}.collapse-chevron{z-index:15;width:18px;height:22px;color:var(--muted);cursor:pointer;border-radius:var(--r-sm);opacity:0;background:0 0;border:none;justify-content:center;align-items:center;font-size:.7rem;line-height:1;transition:opacity .12s,color .12s,background .12s,transform .15s;display:flex;position:absolute;top:7px;left:-28px}.block-wrapper:hover .collapse-chevron{opacity:.7}.collapse-chevron:hover{opacity:1;color:var(--navy);background:var(--slate-50)}.collapse-chevron.collapsed{opacity:1;color:var(--coral);transform:rotate(-90deg)}.block-wrapper.dragging{opacity:.4}.block-wrapper.drop-before:before,.block-wrapper.drop-after:after{content:"";background:var(--coral);pointer-events:none;border-radius:2px;height:2px;position:absolute;left:14px;right:14px}.block-wrapper.drop-before:before{top:-1px}.block-wrapper.drop-after:after{bottom:-1px}.cite-tooltip{z-index:60;background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);max-width:300px;box-shadow:var(--sh-lg);font-family:var(--font-body);color:var(--navy);pointer-events:none;padding:7px 10px;font-size:.78rem;line-height:1.4;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.cite-tooltip-num{color:var(--coral);margin-right:5px;font-weight:700}html[data-mode=sources] .toc,html[data-mode=sources] .minimap{display:none!important}.frontispiece{text-align:center;border-bottom:2px solid var(--line);flex-direction:column;align-items:center;gap:26px;min-height:70vh;margin:0 16px 48px;padding:24px 8px 56px;display:flex;position:relative}.frontispiece input,.frontispiece textarea{color:var(--navy);text-align:center;border-radius:var(--r-sm);background:0 0;border:none;outline:none;width:100%;font-family:inherit;transition:background .12s,box-shadow .12s}.frontispiece input::placeholder,.frontispiece textarea::placeholder{color:var(--placeholder);font-style:italic;font-weight:400}.frontispiece input:not([readonly]):hover,.frontispiece textarea:not([readonly]):hover{background:var(--slate-50)}.frontispiece input:focus,.frontispiece textarea:focus{background:var(--slate-50);box-shadow:0 0 0 2px var(--coral-soft)}.frontispiece .fp-top{flex-direction:column;gap:4px;width:100%;display:flex}.fp-institution{font-family:var(--font-display);color:var(--navy);font-size:1.05rem;font-weight:700}.fp-department{color:var(--muted);font-size:.92rem}.fp-course{color:var(--muted);font-size:.92rem;font-style:italic}.frontispiece .fp-center{flex-direction:column;gap:10px;width:100%;margin:auto 0;display:flex}.fp-title{font-family:var(--font-display);resize:none;font-size:2rem;font-weight:800;line-height:1.2;display:block;overflow:hidden}.fp-subtitle{font-family:var(--font-display);color:var(--muted);font-size:1.15rem;font-weight:600}.frontispiece .fp-people{justify-content:space-between;gap:32px;width:100%;margin-top:12px;display:flex}.frontispiece .fp-col{text-align:left;flex-direction:column;flex:1;gap:2px;display:flex}.frontispiece .fp-col.fp-right,.frontispiece .fp-col.fp-right input{text-align:right}.frontispiece .fp-col input{text-align:left;font-size:.95rem;font-weight:600}.fp-role{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:.6rem;font-weight:700}.frontispiece .fp-year{flex-direction:column;align-items:center;gap:2px;display:flex}.frontispiece .fp-year span{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:.6rem;font-weight:700}.frontispiece .fp-year input{max-width:160px;font-size:.95rem;font-weight:600}.bibliography-page{padding:8px 16px;position:relative}.bib-title{font-family:var(--font-display);color:var(--navy);font-size:2rem;font-weight:800}.bib-sub{color:var(--muted);margin:4px 0 24px;font-size:.9rem}.bib-empty{font-family:var(--font-serif);color:var(--muted);line-height:1.7}.bib-empty kbd{font-family:var(--font-body);background:var(--slate-50);border:1px solid var(--line);color:var(--navy);border-radius:4px;padding:1px 5px;font-size:.8rem}.bib-num{color:var(--coral);font-variant-numeric:tabular-nums;font-weight:700}.bib-num:before{content:"["}.bib-num:after{content:"]"}
