:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-mono:"JetBrains Mono","SFMono-Regular",ui-monospace,monospace;--bg-base:#050b18;--bg-glass:#0f172aa3;--bg-glass-strong:#0f172ad1;--bg-panel:#0f172ac7;--border-glass:#94a3b838;--border-strong:#94a3b859;--text-primary:#f8fafc;--text-secondary:#e2e8f0bf;--accent:#38bdf8;--accent-strong:#0ea5e9;--shadow-soft:0 24px 80px #0f172a8c;--shadow-button:0 18px 40px #0ea5e940;--radius-lg:12px;--radius-md:8px;--radius-sm:4px;--code-kw:#38bdf8;--code-id:#f8fafceb;--code-num:#facc15;--code-str:#4ade80;--code-tpl:#22d3ee;--code-com:#94a3b8a6;--code-op:#f472b6;--code-punc:#e2e8f0b3;--code-rx:#f97316;--bg-glow-a:#38bdf81f;--bg-glow-b:#5eead41f;--blockquote-border:#5eead44d;--blockquote-bg:#2dd4bf0f;--blockquote-text:#e2e8f0d9;--blockquote-accent:#5eead466;--info-border:#3b82f673;--info-bg:#3b82f629;--warning-border:#f59e0b73;--warning-bg:#f59e0b29;--error-border:#ef444480;--error-bg:#ef444429;--success-border:#10b98173;--success-bg:#10b98129;font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;font-weight:400;line-height:1.7}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#f7f9fc;--bg-glass:#ffffffdb;--bg-glass-strong:#fffffff2;--bg-panel:#ffffffeb;--border-glass:#94a3b847;--border-strong:#64748b59;--text-primary:#1e293b;--text-secondary:#1e293bbf;--accent:#2563eb;--accent-strong:#1d4ed8;--shadow-soft:0 18px 48px #0f172a26;--shadow-button:0 16px 30px #2563eb40;--code-kw:#2563eb;--code-id:#1e293beb;--code-num:#ca8a04;--code-str:#15803d;--code-tpl:#0d9488;--code-com:#475569b8;--code-op:#9333ea;--code-punc:#334155bf;--code-rx:#c2410c;--bg-glow-a:#2563eb2e;--bg-glow-b:#0ea5e924;--blockquote-border:#3b82f673;--blockquote-bg:#3b82f61f;--blockquote-text:#1e293bd9;--blockquote-accent:#2563eb8c;--info-border:#3b82f680;--info-bg:#3b82f61f;--warning-border:#eab3088c;--warning-bg:#eab3081f;--error-border:#dc26268c;--error-bg:#dc26261f;--success-border:#22c55e8c;--success-bg:#22c55e1f}*{box-sizing:border-box}body{min-height:100dvh;color:var(--text-primary);background:radial-gradient(circle at 12% 18%,var(--bg-glow-a,#38bdf81f)0%,transparent 55%),radial-gradient(circle at 82% 12%,var(--bg-glow-b,#5eead41f)0%,transparent 60%),var(--bg-base);justify-content:center;align-items:stretch;margin:0;padding:clamp(.75rem,2.5vw,1.5rem);display:flex;position:relative;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;position:fixed;inset:0}body:before{opacity:.6;background:radial-gradient(circle at 12% 88%,#38bdf81a 0%,#0000 55%)}body:after{-webkit-backdrop-filter:blur(70px);opacity:.25}body.hydrating{cursor:progress}body.is-editing .floating-toggle{box-shadow:var(--shadow-button)}.app-shell{border-radius:var(--radius-lg);background:var(--bg-glass-strong);border:1px solid var(--border-glass);width:min(100%,1400px);box-shadow:var(--shadow-soft);grid-template-columns:minmax(0,1fr);gap:clamp(1rem,2.5vw,1.5rem);padding:clamp(1rem,2.5vw,1.75rem);display:grid;position:relative;overflow:hidden}.viewer-pane,.canvas-pane{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-glass);-webkit-backdrop-filter:blur(24px);padding:clamp(1rem,2vw,1.25rem);position:relative;overflow:hidden}.canvas-pane{flex-direction:column;align-items:stretch;gap:clamp(.75rem,2vw,1.25rem);display:flex}.canvas-scroll{overscroll-behavior:contain;scrollbar-gutter:stable both-edges;flex:auto;width:100%;max-width:100%;min-height:clamp(260px,45vh,520px);max-height:min(70vh,760px);margin:0 auto;padding:0 clamp(.25rem,1vw,.5rem);position:relative;overflow-y:auto}.canvas-scroll canvas{margin:0 auto;display:block}.canvas-scroll #canvas-spacer{pointer-events:none;-webkit-user-select:none;user-select:none;width:1px;height:0;margin:0}.markdown-viewer{width:100%;max-width:min(92ch,100%);color:var(--text-primary);margin:0 auto;font-size:clamp(1rem,2.2vw,1.05rem)}.markdown-viewer>:first-child{margin-top:0}.markdown-viewer a{color:var(--accent);text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:2px}.markdown-viewer h1,.markdown-viewer h2,.markdown-viewer h3,.markdown-viewer h4,.markdown-viewer h5,.markdown-viewer h6{color:var(--text-primary);letter-spacing:-.015em;margin-top:clamp(1.8rem,4vw,2.4rem);margin-bottom:clamp(.8rem,2vw,1.4rem);font-weight:600}.markdown-viewer h1{font-size:clamp(2.25rem,5vw,3.2rem);line-height:1.1;position:relative}.markdown-viewer h1:after{content:"";background:linear-gradient(90deg,var(--accent),transparent);border-radius:999px;width:64px;height:3px;margin-top:.75rem;display:block}.markdown-viewer h2{font-size:clamp(1.75rem,3.6vw,2.4rem);line-height:1.2}.markdown-viewer h3{font-size:clamp(1.35rem,2.8vw,1.8rem)}.markdown-viewer p{color:var(--text-secondary);margin-top:0;margin-bottom:clamp(1rem,2.2vw,1.4rem)}.markdown-viewer blockquote{border-radius:var(--radius-md);border:1px solid var(--blockquote-border);background:var(--blockquote-bg);color:var(--blockquote-text);margin:clamp(1.5rem,3vw,2.25rem) 0;padding:1.25rem 1.5rem;position:relative}.markdown-viewer blockquote:before{content:"“";color:var(--blockquote-accent);font-size:3.5rem;position:absolute;top:-10px;left:16px}.markdown-viewer .info-block{border-radius:var(--radius-md);border:1px solid var(--border-glass);background:var(--bg-panel);color:var(--text-primary);margin:clamp(1.25rem,2.5vw,1.75rem) 0;padding:clamp(1rem,2.4vw,1.5rem);position:relative;box-shadow:inset 0 1px #94a3b81f}.markdown-viewer .info-block:before{content:"";border-radius:var(--radius-md)0 0 var(--radius-md);width:4px;position:absolute;top:0;bottom:0;left:0}.markdown-viewer .info-block.info{border-color:var(--info-border);background:var(--info-bg)}.markdown-viewer .info-block.info:before{background:var(--info-border)}.markdown-viewer .info-block.warning{border-color:var(--warning-border);background:var(--warning-bg)}.markdown-viewer .info-block.warning:before{background:var(--warning-border)}.markdown-viewer .info-block.error{border-color:var(--error-border);background:var(--error-bg)}.markdown-viewer .info-block.error:before{background:var(--error-border)}.markdown-viewer .info-block.success{border-color:var(--success-border);background:var(--success-bg)}.markdown-viewer .info-block.success:before{background:var(--success-border)}.markdown-viewer pre{background:var(--bg-panel);border-radius:var(--radius-md);border:1px solid var(--border-glass);padding:clamp(1rem,2.5vw,1.5rem);font-size:.95rem;overflow-x:auto;box-shadow:inset 0 1px #94a3b826}.markdown-viewer code{font-family:var(--font-mono,"JetBrains Mono","SFMono-Regular",ui-monospace,monospace);color:var(--text-primary)}.markdown-viewer :not(pre)>code{background:var(--bg-glass-strong);border-radius:var(--radius-sm);border:1px solid var(--border-glass);color:var(--accent);padding:.15rem .45rem;font-size:.95em}.markdown-viewer pre code{color:var(--code-id);font-family:var(--font-mono,"JetBrains Mono","SFMono-Regular",ui-monospace,monospace);white-space:pre;tab-size:2;line-height:1.65;display:block}.markdown-viewer .tok-kw{color:var(--code-kw);font-weight:600}.markdown-viewer .tok-id{color:var(--code-id)}.markdown-viewer .tok-num{color:var(--code-num)}.markdown-viewer .tok-str{color:var(--code-str)}.markdown-viewer .tok-tpl{color:var(--code-tpl)}.markdown-viewer .tok-com{color:var(--code-com);font-style:italic}.markdown-viewer .tok-rx{color:var(--code-rx)}.markdown-viewer .tok-op{color:var(--code-op)}.markdown-viewer .tok-p{color:var(--code-punc)}.markdown-viewer ul,.markdown-viewer ol{color:var(--text-secondary);margin:clamp(1.2rem,2.4vw,1.6rem) 0;padding-left:clamp(1.2rem,3vw,1.75rem)}.markdown-viewer input[type=checkbox]{appearance:none;border:1px solid var(--border-glass);background:var(--bg-panel);vertical-align:middle;pointer-events:none;cursor:default;border-radius:.3rem;width:1rem;height:1rem;margin-right:.6rem;position:relative}.markdown-viewer input[type=checkbox]:after{content:"";background:0 0;border-radius:.2rem;transition:background .15s;position:absolute;inset:2px}.markdown-viewer input[type=checkbox]:checked:after{background:var(--accent)}.markdown-viewer li+li{margin-top:.6rem}.markdown-viewer table{border-collapse:collapse;border-radius:var(--radius-sm);background:var(--bg-panel);width:100%;margin:clamp(1.5rem,3vw,2rem) 0;overflow:hidden}.markdown-viewer th,.markdown-viewer td{border-bottom:1px solid var(--border-glass);text-align:left;color:var(--text-secondary);padding:.85rem 1rem}.markdown-viewer th{color:var(--text-primary);font-weight:600}.markdown-viewer hr{background:linear-gradient(90deg,#0000,#94a3b866,#0000);border:none;height:1px;margin:clamp(2rem,4vw,2.75rem) 0}.markdown-viewer .footnotes{color:var(--text-secondary);margin-top:clamp(2.5rem,5vw,4rem);font-size:.9em}.markdown-viewer .footnotes hr{margin:clamp(2rem,4vw,2.75rem) 0 clamp(1rem,2vw,1.5rem)}.markdown-viewer .footnotes ol{margin:0;padding-left:clamp(1.5rem,3vw,2rem)}.markdown-viewer .footnotes li{margin-bottom:.5rem}.markdown-viewer .footnote-ref{vertical-align:super;margin-left:.15em;font-size:.8em;line-height:0}.markdown-viewer .footnote-ref a{color:var(--accent);padding:0 .2em;text-decoration:none}.markdown-viewer .footnote-ref a:hover{text-decoration:underline}.markdown-viewer .footnote-backref{margin-left:.5em;font-weight:700;text-decoration:none}.markdown-viewer .footnote-backref:hover{text-decoration:underline}.canvas-pane{flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:clamp(320px,60vh,640px);display:flex}.md-canvas{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-panel);width:min(100%,720px);max-width:100%;height:auto;box-shadow:inset 0 1px #94a3b826}.editor-pane{border-radius:var(--radius-md);background:var(--bg-panel);border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(28px);padding:clamp(.75rem,1.5vw,1rem);display:none;position:relative;box-shadow:inset 0 1px #94a3b81f}body.is-editing .editor-pane{display:flex}.editor{resize:none;border-radius:var(--radius-sm);width:100%;min-height:clamp(280px,40vh,520px);font:inherit;font-family:var(--font-mono,"JetBrains Mono","SFMono-Regular",ui-monospace,monospace);color:var(--text-primary);background:var(--bg-glass-strong);border:none;border:1px solid var(--border-glass);outline:none;padding:.75rem 1rem;line-height:1.6;box-shadow:inset 0 1px #94a3b81f}.editor:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),inset 0 1px 0 #94a3b82e}.fab-menu{z-index:50;flex-direction:column;align-items:flex-end;gap:.75rem;display:flex;position:fixed;top:clamp(1rem,3vw,1.5rem);right:clamp(1rem,3vw,1.5rem)}.fab-main{border:1px solid var(--border-glass);background:var(--accent);color:#fff;cursor:pointer;width:3rem;height:3rem;box-shadow:var(--shadow-button);-webkit-backdrop-filter:blur(12px);border-radius:50%;place-items:center;transition:transform .2s,box-shadow .2s,background .2s;display:grid}.fab-main:hover,.fab-main:focus-visible{background:var(--accent-strong);box-shadow:var(--shadow-button);outline:none;transform:scale(1.05)}.fab-main .icon{width:1.25rem;height:1.25rem;transition:transform .2s;display:block}.fab-menu.is-open .fab-main .icon{transform:rotate(45deg)}.fab-actions{opacity:0;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.5rem;transition:opacity .2s,transform .2s;display:flex;transform:translateY(-10px)}.fab-menu.is-open .fab-actions{opacity:1;pointer-events:auto;transform:translateY(0)}.fab-action{border:1px solid var(--border-glass);background:var(--bg-glass-strong);width:2.5rem;height:2.5rem;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);border-radius:50%;place-items:center;transition:transform .2s,box-shadow .2s,background .2s;display:grid;position:relative}.fab-action:hover,.fab-action:focus-visible{background:var(--bg-panel);border-color:var(--accent);box-shadow:var(--shadow-button);outline:none;transform:scale(1.05)translate(-2px)}.fab-action .icon{width:1.1rem;height:1.1rem;display:block}.fab-action:before{content:attr(data-tooltip);white-space:nowrap;background:var(--bg-panel);color:var(--text-primary);border:1px solid var(--border-glass);opacity:0;pointer-events:none;box-shadow:var(--shadow-soft);border-radius:6px;padding:.4rem .75rem;font-size:.8rem;font-weight:500;transition:opacity .2s,transform .2s;position:absolute;right:calc(100% + .75rem);transform:translate(5px)}.fab-action:hover:before,.fab-action:focus-visible:before{opacity:1;transform:translate(0)}:is(body:has(.fab-menu) .floating-toggle,body:has(.fab-menu) .floating-theme,body:has(.fab-menu) .floating-theme-switch){display:none}.floating-theme{border-radius:var(--radius-sm);min-width:clamp(3.25rem,8vw,3.75rem);height:clamp(3.25rem,8vw,3.75rem);color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(18px);z-index:45;background:linear-gradient(135deg,#5eead452,#38bdf86b);border:1px solid #94a3b840;place-items:center;transition:transform .25s,box-shadow .25s,background .25s;display:grid;position:fixed;bottom:clamp(1.25rem,5vw,3rem);right:clamp(1.25rem,4vw,2.5rem);box-shadow:0 16px 40px #082f4959}.floating-theme:hover,.floating-theme:focus-visible{background:linear-gradient(135deg,#5eead473,#38bdf899);outline:none;transform:translateY(-2px)scale(1.02);box-shadow:0 20px 45px #082f4980}.floating-theme .icon{width:1.55rem;height:1.55rem}.theme-editor-wrapper{pointer-events:none;opacity:0;z-index:60;justify-content:flex-end;transition:opacity .25s;display:flex;position:fixed;inset:0}.theme-editor-wrapper.is-open{pointer-events:auto;opacity:1}.theme-editor-overlay{opacity:0;background:0 0;flex:auto;transition:opacity .25s}.theme-editor-wrapper.is-open .theme-editor-overlay{opacity:1}.theme-editor-panel{background:var(--bg-panel);border-left:1px solid var(--border-strong);width:min(420px,92vw);max-width:420px;height:100%;box-shadow:var(--shadow-soft);color:var(--text-primary);flex-direction:column;gap:clamp(1rem,3vw,1.5rem);padding:clamp(1.25rem,3vw,1.85rem);transition:transform .25s;display:flex;transform:translate(100%)}.theme-editor-wrapper.is-open .theme-editor-panel{transform:translate(0)}.theme-editor-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.theme-editor-title{letter-spacing:.01em;margin:0;font-size:1.25rem}.theme-editor-close{border:1px solid var(--border-glass);background:var(--bg-glass-strong);width:2.25rem;height:2.25rem;color:var(--text-secondary);cursor:pointer;border-radius:.9rem;place-items:center;transition:background .2s,border .2s,color .2s;display:grid}.theme-editor-close:hover,.theme-editor-close:focus-visible{background:var(--bg-panel);border-color:var(--accent);color:var(--text-primary);outline:none}.theme-editor-close svg{width:1.1rem;height:1.1rem}.theme-editor-content{flex:auto;padding-right:.25rem;overflow-y:auto}.theme-editor-section{flex-direction:column;gap:.85rem;display:flex}.theme-editor-section+.theme-editor-section{margin-top:clamp(1.25rem,3vw,1.75rem)}.theme-editor-section-title{color:var(--text-secondary);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:600}.theme-editor-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;display:grid}.theme-editor-field{flex-direction:column;gap:.45rem;display:flex}.theme-editor-label{color:var(--text-secondary);letter-spacing:.01em;font-size:.85rem;font-weight:500}.theme-editor-input{border:1px solid var(--border-glass);border-radius:var(--radius-sm);background:var(--bg-glass-strong);width:100%;color:var(--text-primary);font:inherit;padding:.55rem .65rem;line-height:1.4;transition:border .2s,box-shadow .2s,background .2s}.theme-editor-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--bg-panel);outline:none}.theme-editor-input[type=color]{cursor:pointer;background:var(--bg-glass-strong);border-radius:var(--radius-sm);padding:.25rem}.theme-editor-input[type=color]::-webkit-color-swatch-wrapper{padding:0}.theme-editor-input[type=color]::-webkit-color-swatch{border-radius:calc(var(--radius-sm) - 2px);border:none}.theme-editor-input[type=color]::-moz-color-swatch{border-radius:calc(var(--radius-sm) - 2px);border:none}.theme-editor-footer{margin-top:auto}.theme-editor-reset{border-radius:var(--radius-sm);border:1px solid var(--border-glass);width:100%;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;padding:.65rem .75rem;transition:background .2s,color .2s,border .2s}.theme-editor-reset:hover,.theme-editor-reset:focus-visible{background:var(--bg-glass-strong);border-color:var(--accent);color:var(--text-primary);outline:none}body.show-theme-editor .floating-theme{box-shadow:var(--shadow-button)}:root[data-theme=light] .floating-theme{color:var(--text-primary);background:linear-gradient(135deg,#3b82f62e,#0ea5e952);border-color:#3b82f659;box-shadow:0 16px 40px #2563eb40}button,[role=button],.floating-toggle,.floating-theme,.floating-theme-switch,.theme-editor-close,.theme-editor-reset,.theme-editor-input,.markdown-viewer a{transition:box-shadow .25s,background .25s,border-color .25s,color .25s}button:focus-visible,[role=button]:focus-visible,.floating-toggle:focus-visible,.floating-theme:focus-visible,.floating-theme-switch:focus-visible,.theme-editor-close:focus-visible,.theme-editor-reset:focus-visible,.theme-editor-input:focus-visible,.markdown-viewer a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.floating-theme-switch{width:clamp(3rem,7.5vw,3.5rem);height:clamp(3rem,7.5vw,3.5rem);color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(10px);z-index:45;background:#0f172aeb;border:1px solid #94a3b840;border-radius:50%;place-items:center;transition:transform .25s,box-shadow .25s,background .25s;display:grid;position:fixed;bottom:clamp(1.25rem,5vw,3rem);right:clamp(4rem,9vw,5.5rem);box-shadow:0 16px 40px #082f494d}.floating-theme-switch .icon{width:1.4rem;height:1.4rem}.floating-theme-switch:hover,.floating-theme-switch:focus-visible{transform:translateY(-2px);box-shadow:0 20px 45px #082f4973}:root[data-theme=light] .floating-theme-switch{color:#1f2937;background:#f1f5f9e6;border-color:#94a3b859;box-shadow:0 16px 36px #64748b40}.error-banner{color:#fff;letter-spacing:.02em;z-index:45;background:#ef4444e6;border-radius:999px;padding:.85rem 1.6rem;font-weight:500;position:fixed;bottom:clamp(1.25rem,4vw,2.5rem);left:50%;transform:translate(-50%);box-shadow:0 12px 35px #ef444459}img{object-fit:contain;object-position:center;image-resolution:from-image;border-radius:var(--radius-md);max-width:100%;max-height:100%}@media (min-width:960px){body.is-editing .app-shell{grid-template-columns:minmax(0,1fr) minmax(0,26rem);align-items:start}body.is-editing .editor-pane{min-height:100%}}@media (max-width:959px){.app-shell{padding:clamp(1rem,3vw,2rem)}body.is-editing .viewer-pane,body.is-editing .canvas-pane{visibility:hidden;opacity:0}body.is-editing .editor-pane{z-index:35;border-radius:var(--radius-lg);width:auto;max-width:none;height:auto;max-height:none;padding:clamp(1rem,4vw,2rem);display:flex;position:fixed;inset:clamp(.75rem,3vw,1.5rem)}body.is-editing .editor{min-height:calc(100dvh - 2*clamp(1.5rem,6vw,3rem))}}@media (max-width:560px){body{padding:clamp(.75rem,4vw,1.5rem)}.fab-menu{top:.75rem;right:.75rem}.fab-main{width:2.75rem;height:2.75rem}.fab-action{width:2.25rem;height:2.25rem}.fab-action .icon{width:1rem;height:1rem}}@media (max-width:420px){body.is-editing .editor-pane{inset:clamp(.5rem,4vw,1rem)}.editor{font-size:.95rem}}@media (max-width:600px){.floating-theme{bottom:clamp(.9rem,6vw,2rem);left:clamp(.9rem,5vw,1.75rem);right:auto}.floating-theme-switch{bottom:clamp(4.2rem,11vw,5.5rem);left:auto;right:clamp(.9rem,5vw,1.75rem)}.app-shell{padding:clamp(1.25rem,4vw,2rem)}.viewer-pane,.canvas-pane{padding:clamp(1rem,4vw,1.5rem)}.floating-toggle{width:clamp(2.75rem,7vw,3.25rem);height:clamp(2.75rem,7vw,3.25rem)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
