.CodeMirror{color:#000;direction:ltr;height:300px;font-family:monospace}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{white-space:nowrap;background-color:#f7f7f7;border-right:1px solid #ddd}.CodeMirror-linenumber{text-align:right;color:#999;white-space:nowrap;min-width:20px;padding:0 3px 0 5px}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;width:auto;border:0!important}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection{background:0 0}.cm-fat-cursor .CodeMirror-line>span::-moz-selection{background:0 0}.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:#0000}@keyframes blink{0%{}50%{background-color:#0000}to{}}.cm-tab{text-decoration:inherit;display:inline-block}.CodeMirror-rulers{position:absolute;inset:-50px 0 0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute;top:0;bottom:0}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:#fff;position:relative;overflow:hidden}.CodeMirror-scroll{z-index:0;outline:none;height:100%;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;position:relative;overflow:scroll!important}.CodeMirror-sizer{border-right:50px solid #0000;position:relative}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{z-index:6;outline:none;display:none;position:absolute}.CodeMirror-vscrollbar{top:0;right:0;overflow:hidden scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow:scroll hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{z-index:3;min-height:100%;position:absolute;top:0;left:0}.CodeMirror-gutter{white-space:normal;vertical-align:top;height:100%;margin-bottom:-50px;display:inline-block}.CodeMirror-gutter-wrapper{z-index:4;position:absolute;background:0 0!important;border:none!important}.CodeMirror-gutter-background{z-index:4;position:absolute;top:0;bottom:0}.CodeMirror-gutter-elt{cursor:default;z-index:4;position:absolute}.CodeMirror-gutter-wrapper ::selection{background-color:#0000}.CodeMirror-gutter-wrapper ::selection{background-color:#0000}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{font-family:inherit;font-size:inherit;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual;background:0 0;border-width:0;border-radius:0;margin:0;position:relative;overflow:visible}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{z-index:0;position:absolute;inset:0}.CodeMirror-linewidget{z-index:2;padding:.1px;position:relative}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{box-sizing:content-box}.CodeMirror-measure{visibility:hidden;width:100%;height:0;position:absolute;overflow:hidden}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;z-index:3;position:relative}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection{background:#d7d4f0}.CodeMirror-line>span::-moz-selection{background:#d7d4f0}.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}:root{color-scheme:light dark;--bg:oklch(100% 0 0);--panel:oklch(99.5% .001 260);--canvas:oklch(97.5% .003 265);--ink:oklch(28% .021 265);--ink-soft:oklch(46% .016 265);--muted:oklch(62% .012 265);--border:oklch(92.5% .004 265);--border-strong:oklch(87% .006 265);--hover:oklch(96.5% .004 265);--accent:oklch(55% .15 264);--accent-hover:oklch(48% .15 264);--accent-wash:oklch(95.5% .03 264);--accent-ink:oklch(99% .005 264);--danger:oklch(55% .19 22);--danger-wash:oklch(97% .02 22);--paper:#fff;--shadow-pop:0 8px 28px oklch(35% .04 265/.16);--shadow-page:0 1px 3px oklch(40% .04 265/.09), 0 10px 30px oklch(40% .04 265/.09);--sidebar-w:234px;--topbar-h:52px;--radius:10px;--ease:cubic-bezier(.22, 1, .36, 1);--z-menu:30;--z-error:40;--z-boot:100;--ui:"Inter", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}@media (prefers-color-scheme:dark){:root{--bg:oklch(18.5% .014 265);--panel:oklch(20.5% .014 265);--canvas:oklch(14.5% .012 265);--ink:oklch(94% .008 265);--ink-soft:oklch(78% .01 265);--muted:oklch(62% .012 265);--border:oklch(29% .013 265);--border-strong:oklch(37% .015 265);--hover:oklch(25% .014 265);--accent:oklch(72% .13 264);--accent-hover:oklch(78% .13 264);--accent-wash:oklch(30% .05 264);--accent-ink:oklch(16% .02 265);--danger:oklch(72% .16 22);--danger-wash:oklch(28% .05 22);--shadow-page:0 2px 6px oklch(0% 0 0/.4), 0 16px 40px oklch(0% 0 0/.5);--shadow-pop:0 10px 34px oklch(0% 0 0/.55)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--ui);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;overflow:hidden}button{font:inherit;cursor:pointer;color:inherit}svg{display:block}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:padding-box}.app{grid-template-columns:var(--sidebar-w) minmax(360px, 1.35fr) 1.9fr;height:100dvh;transition:grid-template-columns .3s var(--ease);grid-template-rows:minmax(0,1fr);display:grid;overflow:hidden}.app.nosidebar{--sidebar-w:0px}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;grid-column:1;gap:20px;min-width:0;min-height:0;padding:16px 14px;display:flex;overflow:hidden}.brand{align-items:center;gap:11px;padding:4px 6px;display:flex}.mark{width:34px;height:34px;color:var(--accent-ink);background:#212d47;border-radius:10px;flex:none;place-items:center;display:grid;box-shadow:inset 0 1px oklch(100% 0 0/.3)}.brand-name{letter-spacing:-.01em;font-size:15px;font-weight:600}.brand-sub{color:var(--muted);margin-top:1px;font-size:11px}.side-group{flex-direction:column;gap:3px;display:flex}.side-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:4px 8px;font-size:10.5px;font-weight:600}.side-item{text-align:left;width:100%;color:var(--ink-soft);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 8px;font-size:13.5px;text-decoration:none;transition:background .14s,color .14s;display:flex}.side-item:hover{background:var(--hover);color:var(--ink)}.side-item svg{opacity:.8;flex:none;width:17px;height:17px}.side-item.accent{color:var(--accent);font-weight:500}.side-item.accent:hover{background:var(--accent-wash)}.cv-heading{margin-top:2px}.cv-list{flex-direction:column;flex:1;gap:2px;min-height:0;margin:0 -6px;padding:0 6px 4px;display:flex;overflow-y:auto}.cv-empty{color:var(--muted);padding:8px;font-size:12.5px}.cv-item{cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 6px 7px 8px;transition:background .14s;display:flex}.cv-item:hover{background:var(--hover)}.cv-item.active{background:var(--accent-wash)}.cv-item.active .cv-name{color:var(--accent);font-weight:600}.cv-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--ink);flex:1;font-size:13.5px;overflow:hidden}.cv-rename{min-width:0;font:inherit;border:1px solid var(--accent);background:var(--bg);color:var(--ink);border-radius:6px;flex:1;padding:2px 6px;font-size:13.5px}.icon-btn{opacity:0;width:26px;height:26px;color:var(--muted);background:0 0;border:none;border-radius:6px;flex:none;place-items:center;transition:opacity .14s,background .14s,color .14s;display:grid}.cv-item:hover .icon-btn,.cv-item.active .icon-btn{opacity:1}.icon-btn:hover{background:color-mix(in oklch, var(--ink) 12%, transparent);color:var(--ink)}.icon-btn svg{width:16px;height:16px}.fixed-menu{z-index:var(--z-menu);background:var(--bg);border:1px solid var(--border-strong);min-width:170px;box-shadow:var(--shadow-pop);animation:pop .16s var(--ease);border-radius:10px;padding:5px;position:fixed}.fixed-menu button{width:100%;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:7px;padding:8px 10px;font-size:13px;transition:background .12s;display:block}.fixed-menu button:hover{background:var(--hover)}.fixed-menu button.danger{color:var(--danger)}.fixed-menu button.danger:hover{background:var(--danger-wash)}.menu-sep{background:var(--border);height:1px;margin:4px 6px}.side-foot{border-top:1px solid var(--border);color:var(--muted);padding-top:12px;font-size:11.5px;line-height:1.5}.side-foot a{color:var(--ink-soft);text-decoration:none}.side-foot a:hover{color:var(--accent)}.side-credit{color:var(--muted);align-items:center;gap:8px;margin:12px 0 14px;font-size:13px;display:flex}.side-credit a{color:var(--ink-soft);align-items:center;display:inline-flex}.side-credit a:hover{color:var(--accent)}.editor-col{background:var(--bg);border-right:1px solid var(--border);flex-direction:column;grid-column:2;min-width:0;min-height:0;display:flex}.toolbar{height:var(--topbar-h);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:6px;padding:0 12px;display:flex}.tbtn{min-width:32px;height:32px;color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 8px;transition:background .14s,color .14s,border-color .14s;display:inline-flex}.tbtn:hover:not(:disabled){background:var(--hover);color:var(--ink)}.tbtn:disabled{opacity:.4;cursor:not-allowed}.tbtn svg{width:17px;height:17px}.tbtn.bordered{border-color:var(--border-strong)}.tbtn.bordered:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.tsep{background:var(--border);width:1px;height:22px;margin:0 4px}.grow{flex:1}.badge{letter-spacing:.03em;color:var(--accent);background:var(--accent-wash);border-radius:6px;padding:4px 8px;font-size:11px;font-weight:600}.status-dot{background:var(--muted);border-radius:50%;width:9px;height:9px;transition:background .2s;display:inline-block}.status-dot[data-state=idle]{background:oklch(72% .15 150)}.status-dot[data-state=busy]{background:oklch(78% .15 85)}.zoom{border:1px solid var(--border-strong);border-radius:8px;align-items:center;display:inline-flex;overflow:hidden}.zoom button{color:var(--ink-soft);background:0 0;border:none;place-items:center;width:30px;height:30px;transition:background .14s;display:grid}.zoom button:hover{background:var(--hover);color:var(--ink)}.zoom .zoom-val{text-align:center;font-variant-numeric:tabular-nums;min-width:46px;color:var(--ink-soft);border-left:1px solid var(--border);border-right:1px solid var(--border);cursor:pointer;background:0 0;height:30px;font-size:12.5px;line-height:30px}.menu-wrap{position:relative}.menu{z-index:var(--z-menu);background:var(--bg);border:1px solid var(--border-strong);min-width:176px;box-shadow:var(--shadow-pop);border-radius:10px;padding:5px;display:none;position:absolute;top:calc(100% + 6px);right:0}.menu[data-open=true]{animation:pop .16s var(--ease);display:block}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}}.menu button{width:100%;color:var(--ink);background:0 0;border:none;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:13px;transition:background .12s;display:flex}.menu button:hover{background:var(--hover)}.menu button span.k{color:var(--muted);font-size:11px;font-family:var(--mono)}.theme-row{border-bottom:1px solid var(--border);flex:none;justify-content:center;align-items:center;gap:4px;padding:9px 12px;display:flex}.theme-row .arrow{width:30px;height:30px;color:var(--muted);background:0 0;border:none;border-radius:8px;place-items:center;transition:background .14s,color .14s;display:grid}.theme-row .arrow:hover{background:var(--hover);color:var(--ink)}.theme-select{font:inherit;color:var(--ink);text-align:center;text-align-last:center;cursor:pointer;appearance:none;background:0 0;border:1px solid #0000;border-radius:8px;min-width:190px;padding:6px 12px;font-size:13.5px;font-weight:500;transition:background .14s,border-color .14s}.theme-select:hover{background:var(--hover);border-color:var(--border)}.editor-wrap{flex:1;min-height:0;overflow:hidden}.preview-col{background:var(--canvas);grid-column:3;min-width:0;min-height:0;position:relative}.preview-scroll{justify-content:center;padding:32px;display:flex;position:absolute;inset:0;overflow:auto}.page{background:var(--paper);border:1px solid var(--border);width:816px;height:max-content;box-shadow:var(--shadow-page);zoom:var(--zoom,1);transition:opacity .22s var(--ease);border-radius:3px;flex:none;overflow:hidden}.page svg{width:100%;height:auto}.page.stale{opacity:.4}.page:empty{aspect-ratio:1/1.294}.error{z-index:var(--z-error);background:var(--danger-wash);border:1px solid color-mix(in oklch, var(--danger) 42%, transparent);border-radius:var(--radius);max-width:640px;height:max-content;max-height:calc(100% - 48px);box-shadow:var(--shadow-pop);white-space:pre-wrap;font-family:var(--mono);color:var(--ink);margin:0 auto;padding:18px 20px;font-size:12.5px;line-height:1.6;position:absolute;top:24px;left:24px;right:24px;overflow:auto}.error:before{content:"Couldn’t render";font-family:var(--ui);color:var(--danger);margin-bottom:9px;font-size:14px;font-weight:600;display:block}.CodeMirror.cm-s-rendercv{height:100%;font-family:var(--mono);background:var(--bg);color:var(--ink);padding-top:6px;font-size:13px;line-height:1.7}.cm-s-rendercv .CodeMirror-gutters{background:var(--bg);border-right:1px solid var(--border)}.cm-s-rendercv .CodeMirror-linenumber{color:var(--muted);opacity:.5}.cm-s-rendercv .CodeMirror-cursor{border-left:2px solid var(--accent)}.cm-s-rendercv .CodeMirror-selected{background:color-mix(in oklch, var(--accent) 16%, transparent)}.cm-s-rendercv .CodeMirror-activeline-background{background:color-mix(in oklch, var(--accent) 5%, transparent)}.cm-s-rendercv .cm-comment{color:var(--muted);font-style:italic}.cm-s-rendercv .cm-atom{color:var(--accent);font-weight:600}.cm-s-rendercv .cm-meta{color:oklch(58% .13 300)}.cm-s-rendercv .cm-number{color:oklch(55% .13 40)}.cm-s-rendercv .cm-string{color:oklch(50% .11 150)}@media (prefers-color-scheme:dark){.cm-s-rendercv .cm-number{color:oklch(80% .12 60)}.cm-s-rendercv .cm-string{color:oklch(80% .13 155)}.cm-s-rendercv .cm-meta{color:oklch(78% .12 300)}}.boot{z-index:var(--z-boot);background:var(--canvas);transition:opacity .45s var(--ease), visibility .45s;place-content:center;justify-items:center;gap:20px;display:grid;position:fixed;inset:0}.boot.done{opacity:0;visibility:hidden}.boot-mark{width:66px;height:66px;box-shadow:var(--shadow-page);animation:floaty 2.4s var(--ease) infinite;background:#fff;border-radius:17px;place-items:center;display:grid}.boot-mark img{object-fit:contain;width:46px;height:46px}@keyframes floaty{50%{transform:translateY(-7px)}}.boot-title{letter-spacing:-.01em;font-size:17px;font-weight:600}.boot-status{color:var(--muted);min-height:1.2em;font-size:13px}.boot-bar{background:var(--border);border-radius:3px;width:220px;height:3px;position:relative;overflow:hidden}.boot-bar:after{content:"";background:var(--accent);width:40%;animation:slide 1.4s var(--ease) infinite;border-radius:3px;position:absolute;inset:0}@keyframes slide{0%{left:-40%}to{left:100%}}@media (width<=1080px){.app{grid-template-columns:0 minmax(320px,1fr) 1.4fr}.sidebar{display:none}}@media (width<=780px){.app{grid-template-rows:minmax(0,44vh) minmax(0,1fr);grid-template-columns:1fr}.editor-col{border-right:none;border-bottom:1px solid var(--border);grid-area:1/1}.preview-col{grid-area:2/1}.preview-scroll{padding:16px}.page{width:100%;max-width:816px}}@media (prefers-reduced-motion:reduce){*,:after{transition:none!important;animation:none!important}}
