:root{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-surface-2: #f1f3f5;--color-sidebar: #f6f7f9;--color-border: #e3e6ea;--color-text: #0b0d10;--color-text-muted: #4b5563;--color-primary: #5c67ff;--color-primary-fg: #ffffff;--color-primary-soft: #eef0ff;--color-success: #1f9d55;--color-warning: #d98a00;--color-danger: #f53f50;--color-danger-soft: #fdecee;--color-info: #2f7fd1;--color-focus-ring: #5c67ff;--color-bg-rgb: 246 247 249;--color-surface-rgb: 255 255 255;--color-surface-2-rgb: 241 243 245;--color-sidebar-rgb: 246 247 249;--color-border-rgb: 227 230 234;--color-text-rgb: 11 13 16;--color-text-muted-rgb: 75 85 99;--color-primary-rgb: 92 103 255;--color-primary-fg-rgb: 255 255 255;--color-primary-soft-rgb: 238 240 255;--color-success-rgb: 31 157 85;--color-warning-rgb: 217 138 0;--color-danger-rgb: 245 63 80;--color-danger-soft-rgb: 253 236 238;--color-info-rgb: 47 127 209;--color-focus-ring-rgb: 92 103 255;--color-skeleton-rgb: 11 13 16;--color-skeleton-a: .25;--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", "Nanum Gothic Coding", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-md: .8125rem;--text-lg: .9375rem;--text-xl: 1.0625rem;--text-2xl: 1.1875rem;--leading-tight: 1.3;--leading-normal: 1.5;--font-medium: 500;--font-semibold: 600;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 12px rgba(16, 24, 40, .1);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .16);--panel-w: 440px;--topbar-h: 48px;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .3s;--z-base: 0;--z-nav: 10;--z-fab: 15;--z-panel: 20;--z-dropdown: 30;--z-toast: 40;--z-modal: 50;--syntax-comment: var(--color-text-muted);--syntax-keyword: #7e22ce;--syntax-string: #0f766e;--syntax-number: #9a4a08;--syntax-text: var(--color-text);--editor-selection: rgb(var(--color-primary-rgb) / .18);--editor-active-line: rgb(var(--color-text-rgb) / .04);--editor-cursor: var(--color-focus-ring);--term-black: #0b0d10;--term-red: #c0273a;--term-green: #12704a;--term-yellow: #8a5a00;--term-blue: #175cd3;--term-magenta: #a21caf;--term-cyan: #0e7490;--term-white: #9aa1ac;--term-bright-black: #4b5563;--term-bright-red: #8c1122;--term-bright-green: #0a4f34;--term-bright-yellow: #5e3d00;--term-bright-blue: #123f92;--term-bright-magenta: #6b1275;--term-bright-cyan: #0a4f62;--term-bright-white: #374151;--console-stderr-fg: #b91c2c;--console-stderr-bg: rgb(var(--color-danger-rgb) / .06);--console-img-max-h: 320px;--ide-bp-3col: 68.75rem;--ide-bp-2col: 56.25rem;--ide-bp-1col: 43.75rem;--ide-rail-w: 2.5rem;--ide-bp-tutor-overlay: 56.25rem;--ide-resizer-w: 4px}[data-theme=dark]{--color-bg: #16181d;--color-surface: #1e2127;--color-surface-2: #262a31;--color-sidebar: #16181d;--color-border: #2c313b;--color-text: #f4f6f8;--color-text-muted: #b0b7c2;--color-primary: #7c84ff;--color-primary-fg: #ffffff;--color-primary-soft: #2b2f55;--color-success: #36b56a;--color-warning: #e0a64a;--color-danger: #ff5b69;--color-danger-soft: #43252a;--color-info: #4f9be0;--color-focus-ring: #7c84ff;--color-bg-rgb: 22 24 29;--color-surface-rgb: 30 33 39;--color-surface-2-rgb: 38 42 49;--color-sidebar-rgb: 22 24 29;--color-border-rgb: 44 49 59;--color-text-rgb: 244 246 248;--color-text-muted-rgb: 176 183 194;--color-primary-rgb: 124 132 255;--color-primary-fg-rgb: 255 255 255;--color-primary-soft-rgb: 43 47 85;--color-success-rgb: 54 181 106;--color-warning-rgb: 224 166 74;--color-danger-rgb: 255 91 105;--color-danger-soft-rgb: 67 37 42;--color-info-rgb: 79 155 224;--color-focus-ring-rgb: 124 132 255;--color-skeleton-rgb: 244 246 248;--color-skeleton-a: .18;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--syntax-comment: var(--color-text-muted);--syntax-keyword: #c084fc;--syntax-string: #2dd4bf;--syntax-number: #e0a64a;--syntax-text: var(--color-text);--editor-selection: rgb(var(--color-primary-rgb) / .24);--editor-active-line: rgb(var(--color-text-rgb) / .06);--term-black: #4a5262;--term-red: #ff5b69;--term-green: #36b56a;--term-yellow: #e0a64a;--term-blue: #6fa8f5;--term-magenta: #c084fc;--term-cyan: #2dd4bf;--term-white: #b0b7c2;--term-bright-black: #78828f;--term-bright-red: #ff9ba3;--term-bright-green: #72e0a0;--term-bright-yellow: #f5cf90;--term-bright-blue: #a9d2ff;--term-bright-magenta: #e2c4ff;--term-bright-cyan: #7ff0dd;--term-bright-white: #f4f6f8;--console-stderr-fg: var(--color-danger);--console-stderr-bg: rgb(var(--color-danger-rgb) / .1)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html,body,#root{height:100%}html{font-size:17.28px}html,body{overscroll-behavior:none}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}*:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.bottom-3{bottom:var(--space-3)}.bottom-4{bottom:var(--space-4)}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:var(--space-4)}.top-0{top:0}.top-full{top:100%}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-6{margin-left:var(--space-6)}.ml-auto{margin-left:auto}.mr-6{margin-right:var(--space-6)}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-1\/3{height:33.333333%}.h-3{height:var(--space-3)}.h-full{height:100%}.h-screen{height:100vh}.h-topbar{height:var(--topbar-h)}.max-h-56{max-height:14rem}.max-h-full{max-height:100%}.min-h-0{min-height:0px}.min-h-\[240px\]{min-height:240px}.min-h-full{min-height:100%}.w-1{width:var(--space-1)}.w-16{width:4rem}.w-20{width:5rem}.w-3{width:var(--space-3)}.w-36{width:9rem}.w-40{width:10rem}.w-44{width:11rem}.w-52{width:13rem}.w-56{width:14rem}.w-64{width:16rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-40{min-width:10rem}.max-w-\[1100px\]{max-width:1100px}.max-w-\[900px\]{max-width:900px}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-x-4{-moz-column-gap:var(--space-4);column-gap:var(--space-4)}.gap-y-1{row-gap:var(--space-1)}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(var(--space-1) * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(var(--space-1) * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(var(--space-2) * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(var(--space-2) * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(var(--space-4) * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(var(--space-4) * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:var(--radius-full)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-border{--tw-border-opacity: 1;border-color:rgb(var(--color-border-rgb) / var(--tw-border-opacity, 1))}.border-danger\/40{border-color:rgb(var(--color-danger-rgb) / .4)}.border-primary{--tw-border-opacity: 1;border-color:rgb(var(--color-primary-rgb) / var(--tw-border-opacity, 1))}.border-warning\/40{border-color:rgb(var(--color-warning-rgb) / .4)}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(var(--color-bg-rgb) / var(--tw-bg-opacity, 1))}.bg-bg\/60{background-color:rgb(var(--color-bg-rgb) / .6)}.bg-danger{--tw-bg-opacity: 1;background-color:rgb(var(--color-danger-rgb) / var(--tw-bg-opacity, 1))}.bg-danger-soft{--tw-bg-opacity: 1;background-color:rgb(var(--color-danger-soft-rgb) / var(--tw-bg-opacity, 1))}.bg-info{--tw-bg-opacity: 1;background-color:rgb(var(--color-info-rgb) / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-rgb) / var(--tw-bg-opacity, 1))}.bg-primary-soft{--tw-bg-opacity: 1;background-color:rgb(var(--color-primary-soft-rgb) / var(--tw-bg-opacity, 1))}.bg-primary-soft\/40{background-color:rgb(var(--color-primary-soft-rgb) / .4)}.bg-sidebar{--tw-bg-opacity: 1;background-color:rgb(var(--color-sidebar-rgb) / var(--tw-bg-opacity, 1))}.bg-success{--tw-bg-opacity: 1;background-color:rgb(var(--color-success-rgb) / var(--tw-bg-opacity, 1))}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-rgb) / var(--tw-bg-opacity, 1))}.bg-surface-2{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-2-rgb) / var(--tw-bg-opacity, 1))}.bg-text-muted\/40{background-color:rgb(var(--color-text-muted-rgb) / .4)}.bg-transparent{background-color:transparent}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(var(--color-warning-rgb) / var(--tw-bg-opacity, 1))}.bg-warning\/10{background-color:rgb(var(--color-warning-rgb) / .1)}.bg-warning\/15{background-color:rgb(var(--color-warning-rgb) / .15)}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:var(--space-1)}.p-1\.5{padding:.375rem}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.pb-2{padding-bottom:var(--space-2)}.pl-4{padding-left:var(--space-4)}.pr-2{padding-right:var(--space-2)}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:var(--text-lg)}.text-sm{font-size:var(--text-sm)}.text-xl{font-size:var(--text-xl)}.text-xs{font-size:var(--text-xs)}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-normal{line-height:1.5}.text-danger{--tw-text-opacity: 1;color:rgb(var(--color-danger-rgb) / var(--tw-text-opacity, 1))}.text-info{--tw-text-opacity: 1;color:rgb(var(--color-info-rgb) / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(var(--color-primary-rgb) / var(--tw-text-opacity, 1))}.text-primary-fg{--tw-text-opacity: 1;color:rgb(var(--color-primary-fg-rgb) / var(--tw-text-opacity, 1))}.text-success{--tw-text-opacity: 1;color:rgb(var(--color-success-rgb) / var(--tw-text-opacity, 1))}.text-text{--tw-text-opacity: 1;color:rgb(var(--color-text-rgb) / var(--tw-text-opacity, 1))}.text-text-muted{--tw-text-opacity: 1;color:rgb(var(--color-text-muted-rgb) / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(var(--color-warning-rgb) / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow: var(--shadow-lg);--tw-shadow-colored: var(--shadow-lg);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: var(--shadow-md);--tw-shadow-colored: var(--shadow-md);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-primary{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--color-primary-rgb) / var(--tw-ring-opacity, 1))}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-fast{transition-duration:var(--dur-fast)}.ease-out{transition-timing-function:var(--ease-out)}*{scrollbar-width:thin;scrollbar-color:rgba(120,128,140,.35) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#78808c4d;border-radius:9999px}*::-webkit-scrollbar-thumb:hover{background-color:#78808c80}.sl-skeleton-fill{background-color:rgb(var(--color-skeleton-rgb) / var(--color-skeleton-a))}.sl-slide-body{display:grid;grid-template-columns:var(--sl-content-w, minmax(14rem, 20rem)) var(--sl-hc, 5px) minmax(0,1fr) var(--sl-ht, 0px) var(--sl-tutor-w, 0px);min-height:0;transition:grid-template-columns var(--dur-base) var(--ease-out)}.sl-slide-body[data-content=collapsed]{--sl-content-w: var(--ide-rail-w) !important;--sl-hc: 0px !important}.sl-slide-body[data-content=collapsed]>.sl-resizer[data-handle=content]{display:none}.sl-slide-body[data-tutor=open]{--sl-ht: 5px}.sl-slide-body[data-tutor=closed]>.sl-resizer[data-handle=tutor]{display:none}.sl-slide-body[data-dragging=true]{transition:none}.sl-slide-body[data-tutor=open]{--sl-tutor-w: min(var(--panel-w), 38%)}.sl-slide-body[data-slide-w=narrow][data-tutor=open]{--sl-tutor-w: 0px !important;--sl-ht: 0px !important}.sl-slide-body[data-slide-w=narrow]>.sl-resizer[data-handle=tutor]{display:none}.sl-slide-body[data-slide-w=narrow]>aside{position:absolute;inset-block:0;inset-inline-end:0;width:min(var(--panel-w),88%);box-shadow:var(--shadow-lg)}.sl-slide-body{position:relative}.sl-slide-body>[data-slot=content]{grid-column:1}.sl-slide-body>.sl-resizer[data-handle=content]{grid-column:2}.sl-slide-body>[data-slot=ide]{grid-column:3}.sl-slide-body>.sl-resizer[data-handle=tutor]{grid-column:4}.sl-slide-body>[data-slot=tutor]{grid-column:5}.sl-slide-body>*,.sl-pane{min-width:0;min-height:0;overflow:hidden}.sl-ide-region{container-type:inline-size;display:flex;flex-direction:column}.sl-ide-grid{display:grid;grid-template-columns:minmax(0,var(--sl-tree-w, 12rem)) var(--sl-h1, 5px) minmax(0,1fr) var(--sl-h2, 5px) minmax(0,var(--sl-preview-w, clamp(30rem, 30%, 46rem)));min-height:0;height:100%;transition:grid-template-columns var(--dur-base) var(--ease-out)}.sl-ide-grid[data-preview=collapsed]{--sl-preview-w: 0px;--sl-h2: 0px}.sl-ide-grid[data-preview=collapsed] .sl-resizer[data-handle=preview]{display:none}.sl-ide-grid[data-dragging=true]{transition:none}.sl-ide-region[data-ide-w="2col"] .sl-ide-grid{--sl-preview-w: 0px !important;--sl-h2: 0px !important;--sl-tree-w: 9rem !important}.sl-ide-region[data-ide-w="2col"] .sl-resizer[data-handle=preview],.sl-ide-region[data-ide-w="1col"] .sl-resizer{display:none}.sl-ide-region[data-ide-w="1col"] .sl-ide-grid{--sl-preview-w: 0px !important;--sl-tree-w: 0px !important;--sl-h1: 0px !important;--sl-h2: 0px !important}.sl-ide-region[data-ide-w="2col"] .sl-preview,.sl-ide-region[data-ide-w="1col"] .sl-preview,.sl-ide-region[data-ide-w="1col"] .sl-file-tree{display:none}.sl-ide-region[data-ide-w="1col"][data-tree=open] .sl-file-tree{display:flex;position:absolute;inset-block:0;inset-inline-start:0;width:min(14rem,70%);z-index:var(--z-nav);border-inline-end:1px solid var(--color-border);box-shadow:var(--shadow-md)}.sl-resizer{position:relative;flex:0 0 var(--ide-resizer-w);cursor:col-resize;background:var(--color-border)}.sl-resizer:hover,.sl-resizer[data-dragging=true]{background:var(--color-primary)}body[data-sl-resizing=true] *{cursor:col-resize!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.sl-rail{writing-mode:vertical-rl;display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:var(--ide-rail-w);background:var(--color-sidebar);border-inline-end:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm);letter-spacing:.15em;cursor:pointer}.sl-rail:hover{color:var(--color-text)}.sl-mono,.sl-editor .cm-editor,.sl-terminal,.sl-console{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);font-variant-ligatures:none}.sl-terminal-hint{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface-2);border-block-end:1px solid var(--color-border)}.sl-terminal-hint code{font-family:var(--font-mono);color:var(--color-text)}.sl-console{overflow-y:auto;overflow-x:auto;background:var(--color-surface);color:var(--color-text);padding-block:var(--space-2)}.sl-console-line{white-space:pre-wrap;overflow-wrap:anywhere;padding-inline:var(--space-3);border-inline-start:2px solid transparent}.sl-console-line--stdout{color:var(--color-text)}.sl-console-line--stderr{color:var(--console-stderr-fg);border-inline-start-color:var(--color-danger);background:var(--console-stderr-bg)}.sl-console-line--system{color:var(--color-text-muted);border-inline-start-color:var(--color-border)}.sl-console-line--system[data-tone=warn]{color:var(--color-warning);border-inline-start-color:var(--color-warning)}.sl-console-line--start{margin-block-start:var(--space-3);padding-block-start:var(--space-2);border-block-start:1px solid var(--color-border);color:var(--color-text-muted);font-weight:var(--font-medium)}.sl-console-line--start:first-child{margin-block-start:0;border-block-start:0}.sl-console-img{display:block;max-width:100%;max-height:var(--console-img-max-h);width:auto;height:auto;margin:var(--space-2) var(--space-3);padding:var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:zoom-in}.sl-console-caret{display:inline;border:0;outline:0;padding:0;background:transparent;color:var(--color-text);font:inherit;line-height:inherit;vertical-align:baseline;caret-color:var(--color-primary)}.sl-console-caret:focus-visible{outline:0}.sl-resizer{position:relative;cursor:col-resize;background:var(--color-border);touch-action:none}.sl-resizer:after{content:"";position:absolute;inset-block:0;inset-inline:-4px}.sl-resizer:hover,.sl-resizer:focus-visible{background:var(--color-primary);outline:none}.sl-drag-shield{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-nav);cursor:col-resize}.sl-file-tree [data-cut]{opacity:.45}.sl-doc{max-width:44rem;color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-relaxed, 1.7)}.sl-doc p{margin-block:var(--space-2)}.sl-doc h1,.sl-doc h2,.sl-doc h3{margin-block:var(--space-4) var(--space-2);font-weight:var(--font-semibold)}.sl-doc h1{font-size:var(--text-lg)}.sl-doc h2{font-size:var(--text-base)}.sl-doc ul,.sl-doc ol{margin-block:var(--space-2);padding-inline-start:var(--space-5)}.sl-doc li{list-style:disc}.sl-doc ol>li{list-style:decimal}.sl-doc table{border-collapse:collapse;margin-block:var(--space-3)}.sl-doc th,.sl-doc td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2)}.sl-doc img{max-width:100%;height:auto}[data-drop=on]{outline:2px dashed var(--color-primary);outline-offset:-2px;background:var(--color-primary-soft)}.sl-sheet{border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre}.sl-sheet th,.sl-sheet td{border-inline-end:1px solid var(--color-border);border-block-end:1px solid var(--color-border);padding:2px var(--space-2);max-width:22rem;overflow:hidden;text-overflow:ellipsis}.sl-sheet thead th,.sl-sheet tbody th{position:sticky;background:var(--color-surface-2);color:var(--color-text-muted);font-weight:var(--font-medium);text-align:center}.sl-sheet thead th{top:0;z-index:1}.sl-sheet tbody th{inset-inline-start:0}.sl-sheet td{color:var(--color-text)}.sl-preview-frame{width:100%;height:100%;border:0;background:var(--color-surface)}.sl-preview[data-collapsed=true]{width:0;overflow:hidden;visibility:hidden}.sl-conn-dot{width:.5rem;height:.5rem;border-radius:var(--radius-full);flex:none}.sl-conn-dot[data-state=up]{background:var(--color-success)}.sl-conn-dot[data-state=starting]{background:var(--color-warning)}.sl-conn-dot[data-state=down]{background:transparent;border:1px solid var(--color-text-muted)}@media (prefers-reduced-motion: reduce){.sl-slide-body,.sl-ide-grid{transition:none}}.sl-tutor-md>:first-child{margin-block-start:0}.sl-tutor-md>:last-child{margin-block-end:0}.sl-tutor-md p{margin-block:var(--space-2)}.sl-tutor-md ul,.sl-tutor-md ol{margin-block:var(--space-2);padding-inline-start:var(--space-5)}.sl-tutor-md li{margin-block:var(--space-1)}.sl-tutor-md code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-surface);border-radius:var(--radius-sm);padding:0 .2em}.sl-tutor-md pre{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);margin-block:var(--space-2);overflow-x:auto}.sl-tutor-md pre code{background:none;padding:0}.sl-tutor-md a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.sl-tutor-md hr{border:0;border-block-start:1px solid var(--color-border);margin-block:var(--space-3)}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:border-primary\/60:hover{border-color:rgb(var(--color-primary-rgb) / .6)}.hover\:bg-danger-soft:hover{--tw-bg-opacity: 1;background-color:rgb(var(--color-danger-soft-rgb) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-2:hover{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-2-rgb) / var(--tw-bg-opacity, 1))}.hover\:text-text:hover{--tw-text-opacity: 1;color:rgb(var(--color-text-rgb) / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary:focus{--tw-border-opacity: 1;border-color:rgb(var(--color-primary-rgb) / var(--tw-border-opacity, 1))}.enabled\:hover\:bg-surface-2:hover:enabled{--tw-bg-opacity: 1;background-color:rgb(var(--color-surface-2-rgb) / var(--tw-bg-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::-moz-selection{color:transparent}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
