@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap");@font-face{font-family:LatexBoi Computer Modern;src:url(/fonts/KaTeX_Main-Regular.woff2) format("woff2");font-weight:400}@font-face{font-family:LatexBoi Computer Modern;src:url(/fonts/KaTeX_Main-Bold.woff2) format("woff2");font-weight:700}:root{--ink:#183b29;--muted:#607568;--line:#dce8df;--surface:#ffffff;--paper:#ffffff;--paper-ink:#272727;--canvas:#f5faf6;--accent:#137547;--blue:#327b69}[data-theme=dark]{--ink:#f1f1f3;--muted:#a3a5ad;--line:#35373e;--surface:#202226;--paper:#ffffff;--paper-ink:#272727;--canvas:#151619;--accent:#7edda2;--blue:#9dcbd8;color-scheme:dark}*{box-sizing:border-box;scrollbar-width:none}::-webkit-scrollbar{display:none;width:0;height:0}body,html{margin:0;height:100%;overflow:hidden;background:var(--canvas);color:var(--ink);font-family:DM Sans,sans-serif;transition:background-color .2s ease,color .2s ease}button,textarea{font:inherit}button{cursor:pointer}.completion-popup{position:absolute;z-index:5;width:340px;max-width:calc(100% - 12px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 32px #0003;overflow:hidden;color:var(--ink)}.completion-list{overflow:auto;min-height:0;overscroll-behavior:contain}.completion-option{padding:7px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.completion-option code{font:12px DM Mono,monospace}.completion-option span{font-size:11px;color:var(--muted)}.completion-option:hover,.completion-option[aria-selected=true]{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.completion-option[aria-selected=true] code{color:var(--accent)}.divider:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.brand-domain{color:var(--accent);font-weight:500}.app-shell{height:100vh;min-height:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:48px;flex:none;padding:0 18px;justify-content:space-between;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 82%,transparent)}.brand,.topbar{display:flex;align-items:center}.brand{gap:7px;font-weight:700;letter-spacing:-.03em;font-size:15px;min-width:170px}.brand-mark{width:23px;height:23px;display:grid;place-items:center;overflow:hidden;border-radius:7px;background:transparent}.brand-logo{display:block;width:23px;height:23px;object-fit:cover}.logo-light{filter:invert(1)}.logo-dark{filter:none}.topbar-center{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px}.dot{width:6px;height:6px;border-radius:50%;background:#76a578}.saved{color:var(--muted);margin-left:0}.topbar-actions{min-width:170px;display:flex;justify-content:flex-end;gap:6px}.topbar-actions .icon-button,.topbar-actions .primary-button{padding:5px 8px;font-size:11px}.icon-button,.primary-button,.small-button{border:1px solid var(--line);background:var(--surface);color:var(--muted);display:flex;gap:7px;align-items:center;border-radius:7px;padding:7px 11px;font-size:12px;transition:.2s ease}.icon-button:hover,.small-button:hover{border-color:var(--accent);color:var(--ink)}.theme-button{padding:6px 8px!important}.primary-button{background:var(--accent);color:var(--surface);border-color:var(--accent);font-weight:600}.primary-button:hover{opacity:.86}.workspace{flex:1 1;min-height:0;height:calc(100vh - 48px);overflow:hidden;display:grid;grid-template-columns:minmax(300px,1fr) 1px minmax(300px,1fr);padding:12px 18px;grid-gap:0;gap:0}.pane{display:flex;flex-direction:column;min-width:0;overflow:hidden}.editor-pane{margin-right:18px}.preview-pane{margin-left:18px}.divider{position:relative;width:8px;background:linear-gradient(90deg,transparent 0 3px,var(--line) 3px 4px,transparent 4px);cursor:col-resize;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.divider:after{content:"";position:absolute;inset:0 -5px}.is-resizing,.is-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pane-header{height:39px;justify-content:space-between;color:var(--muted);font-size:12px}.pane-header,.pane-title{display:flex;align-items:center}.pane-title{gap:8px;font-weight:600;color:var(--ink)}.pane-title svg{color:var(--accent)}.pane-actions{display:flex;align-items:center;gap:8px}.language-pill,.live-pill{border:1px solid #e3e1dc;border-radius:100px;padding:4px 8px;color:#8f8d8c;font:10px DM Mono,monospace}.live-pill{color:#639069;border-color:#d3e4d5;display:flex;gap:5px;align-items:center}.pulse,.status-dot{width:5px;height:5px;border-radius:50%;background:#70a679;display:inline-block}.pulse{animation:pulse 1.8s infinite}.small-button{padding:5px;border-radius:5px}.zoom-button{padding:4px}.zoom-level{border:0;background:transparent;color:var(--muted);padding:3px 2px;min-width:35px;font:10px DM Mono,monospace;cursor:pointer}.zoom-level:hover{color:var(--ink)}.page-indicator{color:var(--muted);font:10px DM Mono,monospace;white-space:nowrap}.editor-wrap{flex:1 1;min-height:0;display:flex;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface) 72%,var(--canvas));box-shadow:0 2px 8px rgba(30,25,20,.025)}.code-editor,.editor-wrap{overflow:hidden!important;min-height:0}.line-numbers{width:47px;flex:none;padding:18px 13px 18px 0;text-align:right;border-right:1px solid var(--line);color:var(--muted);font:12px/1.75 DM Mono,monospace;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden}.line-numbers span{display:block;position:relative}.line-numbers span.active{color:var(--accent);font-weight:600}.line-numbers span.active,.line-numbers span.active:after{background:color-mix(in srgb,var(--accent) 16%,transparent)}.line-numbers span.active:after{content:"";position:absolute;top:0;bottom:0;left:100%;width:13px}textarea{flex:1 1;min-width:0;resize:none;padding:18px 16px;outline:none;border:0;background:transparent;color:transparent;caret-color:var(--ink);font:12px/1.75 DM Mono,monospace;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;-moz-tab-size:2;tab-size:2}.code-editor{position:relative;flex:1 1;min-width:0;overflow:hidden}.code-editor pre,.code-editor textarea{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:18px 16px;overflow:auto;font:12px/1.75 DM Mono,monospace;white-space:pre;overflow-wrap:normal;word-break:normal;-moz-tab-size:2;tab-size:2}.code-editor pre{pointer-events:none;overflow:hidden}.code-editor textarea{z-index:1}.code-line{display:block;min-height:1.75em}.code-line.active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.syntax-comment{font-style:italic}.code-editor pre{overflow:hidden!important}.code-editor textarea{display:block;min-height:0;overflow-y:auto!important;overflow-x:auto!important}.code-line.active{margin-left:-16px;padding-left:16px;width:calc(100% + 16px)}.code-editor textarea::selection{background:Highlight;color:HighlightText}.statusbar{display:flex;justify-content:space-between;padding:10px 2px 0;color:#a2a0a0;font:10px DM Mono,monospace}.statusbar span{display:flex;align-items:center;gap:6px}.preview-status{padding-left:3px}.paper-frame{flex:1 1;min-height:0;overflow:auto;padding:28px 30px;display:flex;justify-content:center;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--canvas) 88%,var(--paper));box-shadow:0 2px 8px rgba(30,25,20,.025);cursor:-webkit-grab;cursor:grab;touch-action:none;overscroll-behavior:contain}.paper-frame.is-panning{cursor:-webkit-grabbing;cursor:grabbing}.paper-stack{width:210mm;min-width:0;flex:none;margin:0 auto}.paper-canvas{width:210mm;display:flex;flex-direction:column;align-items:stretch;gap:22px;transform-origin:top center}.paper{width:210mm;max-width:none;height:297mm;aspect-ratio:auto;min-height:297mm;overflow:hidden;padding:20mm 18mm;background:var(--paper);box-shadow:0 7px 24px rgba(50,40,30,.06);color:var(--paper-ink);font-family:LatexBoi Computer Modern,Computer Modern,Times New Roman,serif;font-size:12px;line-height:1.52;overflow-wrap:break-word}.paper h1{margin:12mm 0 3px;font:400 24px/1.2 LatexBoi Computer Modern,Times New Roman,serif}.paper .author,.paper h1{text-align:center;color:var(--paper-ink)}.paper .author{margin:0 0 29px;font-size:11px;line-height:1.4}.paper .date{display:inline-block;margin-top:7px}.paper h2{margin:21px 0 7px;font:700 16px/1.3 LatexBoi Computer Modern,Times New Roman,serif;color:var(--paper-ink)}.paper h3{margin:15px 0 5px;font:700 13px/1.3 LatexBoi Computer Modern,Times New Roman,serif}.paper p{margin:0 0 10px;text-align:justify;text-wrap:pretty}.math-display{margin:15px 0;text-align:center;overflow:auto}.paper .katex{font-size:1em}.footer{height:40px;padding:0 28px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);color:#a19f9b;font-size:11px}.footer-muted{color:#c0bdb9;margin-left:3px}.paper h4{margin:13px 0 4px;font:700 12px/1.3 Times New Roman,serif}.paper ol,.paper ul{margin:6px 0 11px 20px;padding:0}.paper li{margin:3px 0}.paper a{color:#4c72a5;text-decoration:underline}.small-caps{font-feature-settings:"smcp";font-variant:small-caps}.abstract{padding:0;margin:18px 0 15px;font-size:11px}.abstract,.abstract strong,.paper .abstract p{text-align:center}.abstract strong{display:block;margin-bottom:7px;font-family:Times New Roman,serif;font-size:11px;text-transform:none;letter-spacing:0}.paper .keywords{text-align:left;white-space:normal}.table-scroll{margin:14px 0;overflow:auto}.paper table{width:100%;border-collapse:collapse;font-family:Times New Roman,serif;font-size:10px}.paper td{border-bottom:1px solid #ddd9d1;padding:5px 8px;text-align:left}.paper tr:first-child td{font-weight:700;border-top:1px solid #aaa49b}.figure-placeholder{margin:18px auto;text-align:center}.image-placeholder{display:grid;place-items:center;min-height:90px;margin:auto;border:1px dashed #c9c4bc;background:#f3f1ed;color:#aaa49b;font:12px DM Mono,monospace;max-width:280px}.figure-placeholder figcaption{margin-top:8px;color:#77736e;font-size:10px}.algorithm pre,.code-block{margin:14px 0;padding:12px 14px;overflow:auto;border-radius:6px;background:#272a2e;color:#e5e7eb;font:10px/1.5 DM Mono,monospace;text-align:left}.algorithm{margin:14px 0;padding:10px 14px;border:1px solid #dedad2;border-radius:7px;font-family:DM Sans,sans-serif}.algorithm pre{margin:8px -2px 0}.theorem{margin:14px 0;padding:10px 14px;background:#f7f5f1;border-left:3px solid #8d9fbd}.color-box{margin:14px 0;padding:14px 16px;border:1px solid #b9c8dd;border-radius:6px;background:#f3f7fc}.color-box p:last-child,.theorem p:last-child{margin-bottom:0}.centered{text-align:center}.columns{column-count:2;column-gap:28px}.columns>*{page-break-inside:avoid;break-inside:avoid}.bibliography{margin-top:22px}.citation,.reference{color:#4c72a5}.footnote-text{display:none}blockquote{margin:14px 10px;padding-left:14px;border-left:3px solid #d3cec5;color:#66615c;font-style:italic}.toc{margin:22px 0 28px;padding:14px 18px;border:1px solid var(--line);background:#f7f5f1;font-family:DM Sans,sans-serif;font-size:11px}.toc ol{margin:8px 0 0 18px}.tikz-diagram{display:flex;align-items:center;justify-content:center;gap:10px;margin:24px auto;padding:20px 10px}.tikz-node{min-width:38px;padding:8px 14px;border:1px solid #6e8db9;border-radius:7px;background:#edf3fb;font:600 12px DM Sans,sans-serif}.tikz-arrow{color:#6e8db9;font-size:20px}.code-editor pre{color:#4b4c51}.syntax-command{color:#187746}.syntax-comment{color:#738176}.syntax-bracket{color:#477b90}[data-theme=dark] .code-editor pre{color:#d9dbe0}[data-theme=dark] .syntax-command{color:#8fe0ae}[data-theme=dark] .syntax-comment{color:#9bae9f}[data-theme=dark] .syntax-bracket{color:#9dcedd}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.paper h1{font-size:28px}.paper .author{margin:8px 0 36px;font-size:13px;line-height:1.55}.abstract{line-height:1.5}.abstract,.abstract strong{font-size:13px}.paper-frame{background:color-mix(in srgb,var(--canvas) 94%,#000 6%);display:block}.paper-stack{position:relative;overflow:clip}.paper-canvas{margin:0;transform-origin:top left}@media print{.paper-stack{overflow:visible}}.code-editor pre{inset:0 auto auto 0;width:max-content;min-width:100%;height:auto;min-height:100%;overflow:visible!important}.code-line{height:21px;min-height:21px;line-height:21px}@media print{@page{size:A4;margin:0}body,html{background:#fff}.app-shell,body,html{height:auto;min-height:0;overflow:visible}.divider,.editor-pane,.footer,.preview-pane>.pane-header,.preview-status,.topbar{display:none!important}.workspace{padding:0}.preview-pane,.workspace{display:block;height:auto;min-height:0;overflow:visible}.preview-pane{margin:0}.paper-frame{display:block;height:auto;min-height:0;padding:0;border:0;background:white;box-shadow:none;overflow:visible}.paper-stack{width:auto!important}.paper-canvas,.paper-stack{display:block;height:auto!important}.paper-canvas{width:210mm!important;transform:none!important}.paper{width:210mm;height:297mm;aspect-ratio:auto;min-height:297mm;max-width:none;margin:0;overflow:hidden;box-shadow:none;page-break-after:auto;break-after:auto;page-break-before:auto;break-before:auto}.paper+.paper{page-break-before:always;break-before:page}}@media screen and (max-width:760px){.topbar{padding:0 12px}.topbar-center{display:none}.brand,.topbar-actions{min-width:auto}.workspace{grid-template-columns:1fr!important;gap:10px;padding:10px;overflow:auto}.divider{width:auto;height:1px}.editor-pane,.preview-pane{margin:0;min-height:calc(100vh - 68px)}.editor-wrap,.paper-frame{min-height:0}.paper-frame{padding:18px 12px}}