@keyframes shared_fadeIn__1p904c34{0%{opacity:0}to{opacity:1}}.shared_iconStandaloneClassName__1p904c30 svg{margin:auto}.shared_buttonClassName__1p904c31{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:initial;border:0;color:var(--sp-colors-clickable);cursor:pointer;display:flex;font-family:inherit;font-size:inherit;outline:none;text-decoration:none;transition:color var(--sp-transitions-default),background var(--sp-transitions-default)}.shared_buttonClassName__1p904c31:disabled{color:var(--sp-colors-disabled)}.shared_buttonClassName__1p904c31:hover:not(:disabled,[data-active=true]){color:var(--sp-colors-hover)}.shared_buttonClassName__1p904c31[data-active=true]{color:var(--sp-colors-accent)}.shared_buttonClassName__1p904c31.shared_iconStandaloneClassName__1p904c30{display:flex;height:var(--sp-space-7);padding:var(--sp-space-1)}.shared_buttonClassName__1p904c31.shared_iconStandaloneClassName__1p904c30.shared_buttonClassName__1p904c31:not(:has(span)){width:var(--sp-space-7)}.shared_buttonClassName__1p904c31.shared_iconStandaloneClassName__1p904c30.shared_buttonClassName__1p904c31:has(svg+span){gap:var(--sp-space-1);padding-left:var(--sp-space-2);padding-right:var(--sp-space-3)}.shared_buttonClassName__1p904c31 svg{height:var(--sp-space-4);min-width:var(--sp-space-4);width:var(--sp-space-4)}.shared_roundedButtonClassName__1p904c32{background-color:var(--sp-colors-surface2);border:1px solid var(--sp-colors-surface3);border-radius:99999px}.shared_roundedButtonClassName__1p904c32[data-active=true]{background:var(--sp-colors-accent);color:var(--sp-colors-surface1)}.shared_roundedButtonClassName__1p904c32:hover:not(:disabled,[data-active=true]){background-color:var(--sp-colors-surface3)}.shared_iconClassName__1p904c33{padding:0}.shared_absoluteClassName__1p904c35{bottom:0;height:100%;left:0;margin:0;overflow:auto;position:absolute;right:0;top:0;z-index:var(--sp-zIndices-top)}.shared_errorBaseClassName__1p904c36{background-color:var(--sp-colors-surface1);display:flex;flex-direction:column;gap:var(--sp-space-2);padding:var(--sp-space-10);white-space:pre-wrap}.shared_errorBaseClassName__1p904c36 .shared_buttonClassName__1p904c31{gap:var(--sp-space-2);margin-top:var(--sp-space-1);padding:0 var(--sp-space-3) 0 var(--sp-space-2);width:auto}.shared_errorClassName_solidBg_true__1p904c38{background-color:var(--sp-colors-errorSurface)}.shared_errorBundlerClassName__1p904c39{background-color:var(--sp-colors-surface1);padding:var(--sp-space-10)}.shared_errorBundlerClassName__1p904c39 .shared_buttonClassName__1p904c31{gap:var(--sp-space-2);margin-top:var(--sp-space-6);padding:0 var(--sp-space-3) 0 var(--sp-space-2);width:auto}.shared_errorMessageBaseClassName__1p904c3a{animation:shared_fadeIn__1p904c34 .15s ease;color:var(--sp-colors-error);display:flex;flex-direction:column;gap:var(--sp-space-3)}.shared_errorMessageBaseClassName__1p904c3a a{color:inherit}.shared_errorMessageBaseClassName__1p904c3a p{margin:0}.shared_errorMessageClassName_errorCode_true__1p904c3c{font-family:var(--sp-font-mono)}.styles_placeholderClassName__1rrot0b0{color:var(--sp-syntax-color-plain);display:block;font-family:var(--sp-font-mono);font-size:var(--sp-font-size);line-height:var(--sp-font-lineHeight);margin:0}.styles_tokensClassName__1rrot0b1 .sp-syntax-string{color:var(--sp-syntax-color-string);font-style:var(--sp-syntax-fontStyle-string)}.styles_tokensClassName__1rrot0b1 .sp-syntax-plain{color:var(--sp-syntax-color-plain);font-style:var(--sp-syntax-fontStyle-plain)}.styles_tokensClassName__1rrot0b1 .sp-syntax-comment{color:var(--sp-syntax-color-comment);font-style:var(--sp-syntax-fontStyle-comment)}.styles_tokensClassName__1rrot0b1 .sp-syntax-keyword{color:var(--sp-syntax-color-keyword);font-style:var(--sp-syntax-fontStyle-keyword)}.styles_tokensClassName__1rrot0b1 .sp-syntax-definition{color:var(--sp-syntax-color-definition);font-style:var(--sp-syntax-fontStyle-definition)}.styles_tokensClassName__1rrot0b1 .sp-syntax-punctuation{color:var(--sp-syntax-color-punctuation);font-style:var(--sp-syntax-fontStyle-punctuation)}.styles_tokensClassName__1rrot0b1 .sp-syntax-property{color:var(--sp-syntax-color-property);font-style:var(--sp-syntax-fontStyle-property)}.styles_tokensClassName__1rrot0b1 .sp-syntax-tag{color:var(--sp-syntax-color-tag);font-style:var(--sp-syntax-fontStyle-tag)}.styles_tokensClassName__1rrot0b1 .sp-syntax-static{color:var(--sp-syntax-color-static);font-style:var(--sp-syntax-fontStyle-static)}.styles_editorClassName__1rrot0b2{background:var(--sp-colors-surface1);flex:1 1;overflow:auto;position:relative}.styles_editorClassName__1rrot0b2 .cm-scroller,.styles_editorClassName__1rrot0b2 .styles_placeholderClassName__1rrot0b0{padding:var(--sp-space-4) 0}.styles_cmClassName__1rrot0b3{height:100%;margin:0;outline:none}.styles_readOnlyClassName__1rrot0b4{background-color:var(--sp-colors-surface2);border-radius:99999px;bottom:var(--sp-space-2);color:var(--sp-colors-clickable);font-family:var(--sp-font-mono);font-size:.8em;padding:calc(var(--sp-space-1)/2) var(--sp-space-2);position:absolute;right:var(--sp-space-2);z-index:var(--sp-zIndices-top)}.styles_readOnlyClassName__1rrot0b4+.shared_buttonClassName__1p904c31{right:calc(var(--sp-space-11)*2)}@media screen and (max-width:768px){@supports (-webkit-overflow-scrolling:touch){.styles_editorClassName__1rrot0b2 .cm-content{font-size:16px}}}.FileExplorer_fileExplorerClassName__17ze0mb0{height:100%;overflow:auto;padding:var(--sp-space-3)}.File_explorerClassName__531pif0{border-radius:0;margin-bottom:var(--sp-space-2);padding:0;width:100%}.File_explorerClassName__531pif0 span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.File_explorerClassName__531pif0 svg{margin-right:var(--sp-space-1)}.FileTabs_tabsClassName__1bqsrd30{background:var(--sp-colors-surface1);border-bottom:1px solid var(--sp-colors-surface2)}.FileTabs_tabsScrollableClassName__1bqsrd31{align-items:stretch;display:flex;flex-wrap:nowrap;margin-bottom:-1px;min-height:40px;overflow:auto;padding:0 var(--sp-space-2)}.FileTabs_closeButtonClassName__1bqsrd32{border-radius:var(--sp-border-radius);cursor:pointer;margin-left:var(--sp-space-1);padding:0 var(--sp-space-1) 0 var(--sp-space-1);position:absolute;right:0;visibility:hidden;width:var(--sp-space-5)}.FileTabs_closeButtonClassName__1bqsrd32 svg{display:block;height:var(--sp-space-3);position:relative;top:1px;width:var(--sp-space-3)}.FileTabs_tabContainer__1bqsrd33{align-items:center;display:flex;margin:1px 0;outline:none;padding-right:20px;position:relative}.FileTabs_tabContainer__1bqsrd33:has(button:focus){outline:var(--sp-colors-accent) auto 1px}.FileTabs_tabButton__1bqsrd34{height:var(--sp-layout-headerHeight);padding:0 var(--sp-space-2);white-space:nowrap}.FileTabs_tabButton__1bqsrd34:focus{outline:none}.FileTabs_tabButton__1bqsrd34:hover~.FileTabs_closeButtonClassName__1bqsrd32{visibility:visible}.Navigator_navigatorClassName__1oaf6a60{align-items:center;background:var(--sp-colors-surface1);border-bottom:1px solid var(--sp-colors-surface2);display:flex;height:var(--sp-layout-headerHeight);padding:var(--sp-space-3) var(--sp-space-2)}.Navigator_inputClassName__1oaf6a61{background-color:var(--sp-colors-surface2);border:1px solid var(--sp-colors-surface2);border-radius:99999px;color:var(--sp-colors-clickable);flex:1 1;font-size:inherit;height:24px;line-height:24px;margin-left:var(--sp-space-4);outline:none;padding:var(--sp-space-1) var(--sp-space-3);transition:background var(--sp-transitions-default);width:0}.Navigator_inputClassName__1oaf6a61:hover{background-color:var(--sp-colors-surface3)}.Navigator_inputClassName__1oaf6a61:focus{background-color:var(--sp-colors-surface1);border:1px solid var(--sp-colors-accent);color:var(--sp-colors-base)}.Navigator_navigatorButtonClassName__1oaf6a62{justify-content:center;min-width:var(--sp-space-6)}.TranspiledCode_transpiledCodeClassName__o0yrig0{display:flex;flex:1 1;flex-direction:column;min-height:160px;overflow:auto;position:relative;width:100%}.TranspiledCode_transpiledCodeClassName__o0yrig0 .sp-stack{height:100%}.themeContext_wrapperClassName__v9cp330{clip:auto;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:subpixel-antialiased;all:initial;animation:none 0s ease 0s 1 normal none running;backface-visibility:visible;background:#0000 none repeat 0 0/auto auto padding-box border-box scroll;border:none;border-collapse:initial;-o-border-image:none;border-image:none;border-radius:0;border-spacing:0;bottom:auto;box-shadow:none;box-sizing:initial;box-sizing:border-box;caption-side:top;clear:none;color:#000;-moz-columns:auto;-moz-column-count:auto;-moz-column-fill:balance;column-fill:balance;-moz-column-gap:normal;column-gap:normal;-moz-column-rule:medium none currentColor;column-rule:medium none currentColor;-moz-column-span:1;column-span:1;-moz-column-width:auto;columns:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:inline;display:block;empty-cells:show;float:none;font-family:serif;font-family:var(--sp-font-body);font-size:medium;font-size:var(--sp-font-size);font-stretch:normal;font-style:normal;font-variant:normal;font-weight:400;height:auto;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:disc none outside;margin:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:2;outline:medium none invert;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;position:static;right:auto;-moz-tab-size:8;-o-tab-size:8;tab-size:8;table-layout:auto;text-align:left;-moz-text-align-last:auto;text-align-last:auto;text-decoration:none;text-indent:0;text-rendering:optimizeLegibility;text-shadow:none;text-transform:none;top:auto;transform:none;transform-origin:initial;transform-style:flat;transition:none 0s ease 0s;unicode-bidi:normal;vertical-align:initial;visibility:visible;white-space:normal;widows:2;width:auto;word-spacing:normal;z-index:auto}.themeContext_wrapperClassName__v9cp330.sp-wrapper:focus{outline:0}.themeContext_wrapperClassName_variant_dark__v9cp331{color-scheme:dark}.themeContext_wrapperClassName_variant_light__v9cp332{color-scheme:light}.sp-wrapper *{box-sizing:border-box}@media screen and (min-resolution:2dppx){.themeContext_wrapperClassName__v9cp330{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}.ConsoleList_consoleItemBaseClassName__19z8dmo0{font-size:.8em;padding:var(--sp-space-3) var(--sp-space-2);position:relative;width:100%}.ConsoleList_consoleItemBaseClassName__19z8dmo0:not(:first-child):after{background:var(--sp-colors-surface3);content:"";height:1px;left:0;position:absolute;right:0;top:0}.ConsoleList_consoleItemBaseClassName__19z8dmo0 .sp-cm{padding:0}.ConsoleList_consoleItemBaseClassName__19z8dmo0 .cm-editor{background:none}.ConsoleList_consoleItemBaseClassName__19z8dmo0 .cm-content{padding:0}.ConsoleList_consoleItemBaseClassName__19z8dmo0 .sp-pre-placeholder{font-size:1em;margin:0!important}.ConsoleList_consoleItemClassName_variant_error__19z8dmo2{background:var(--sp-colors-errorSurface);color:var(--sp-colors-error)}.ConsoleList_consoleItemClassName_variant_error__19z8dmo2:not(:first-child):after{background:var(--sp-colors-error);opacity:.07}.ConsoleList_consoleItemClassName_variant_warning__19z8dmo3{background:var(--sp-colors-warningSurface);color:var(--sp-colors-warning)}.ConsoleList_consoleItemClassName_variant_warning__19z8dmo3:not(:first-child):after{background:var(--sp-colors-warning);opacity:.07}.ConsoleList_consoleItemClassName_variant_clear__19z8dmo4{font-style:italic}.SandpackConsole_consoleWrapperClassName__rkaijh0{background:var(--sp-colors-surface1);height:100%}.SandpackConsole_consoleWrapperClassName__rkaijh0 iframe{display:none}.SandpackConsole_consoleWrapperClassName__rkaijh0 .sp-bridge-frame{border:0;bottom:var(--sp-space-2);display:block;height:12px;left:var(--sp-space-2);mix-blend-mode:multiply;pointer-events:none;position:absolute;width:30%;z-index:var(--sp-zIndices-top)}.SandpackConsole_consoleListClassName__rkaijh1{overflow:auto;scroll-behavior:smooth}.SandpackConsole_consoleActionsClassName__rkaijh2{bottom:var(--sp-space-2);display:flex;gap:var(--sp-space-2);position:absolute;right:var(--sp-space-2)}.Header_wrapperClassName__14zb2ni0{border-bottom:1px solid var(--sp-colors-surface2);font-family:var(--sp-font-mono);height:var(--sp-layout-headerHeight);justify-content:space-between;min-height:var(--sp-layout-headerHeight);overflow-x:auto;padding:0 var(--sp-space-2);white-space:nowrap}.Header_flexClassName__14zb2ni1{align-items:center;display:flex;flex-direction:row;gap:var(--sp-space-2)}.Header_headerButtonClassName__14zb2ni2{padding:var(--sp-space-1) var(--sp-space-3)}.Header_headerTitleClassName__14zb2ni3{align-items:center;color:var(--sp-colors-base);display:flex;font-size:var(--sp-font-size);gap:var(--sp-space-2);line-height:1;margin:0}.Preview_previewClassName__1bb1h2j0{background:#fff;display:flex;flex:1 1;flex-direction:column;overflow:auto;position:relative}.Preview_previewClassName__1bb1h2j0 .sp-bridge-frame{border:0;bottom:var(--sp-space-2);height:12px;left:var(--sp-space-2);mix-blend-mode:multiply;pointer-events:none;position:absolute;width:30%;z-index:var(--sp-zIndices-top)}.Preview_previewIframe__1bb1h2j1{border:0;flex:1 1;height:100%;max-height:2000px;min-height:160px;outline:0;width:100%}.Preview_previewActionsClassName__1bb1h2j2{bottom:var(--sp-space-2);display:flex;gap:var(--sp-space-2);position:absolute;right:var(--sp-space-2);z-index:var(--sp-zIndices-overlay)}.Header_wrapperClassName__izhnic0{border-bottom:1px solid var(--sp-colors-surface2);font-family:var(--sp-font-mono);height:var(--sp-layout-headerHeight);justify-content:space-between;min-height:var(--sp-layout-headerHeight);overflow-x:auto;padding:0 var(--sp-space-2);white-space:nowrap}.Header_flexClassName__izhnic1{align-items:center;display:flex;flex-direction:row;gap:var(--sp-space-2)}.Header_headerButtonClassName__izhnic2{padding:var(--sp-space-1) var(--sp-space-3)}.Header_headerTitleClassName__izhnic3{align-items:center;color:var(--sp-colors-base);display:flex;font-size:var(--sp-font-size);gap:var(--sp-space-2);line-height:1;margin:0}.SandpackTests_previewActionsClassName__j85g840{bottom:var(--sp-space-2);display:flex;position:absolute;right:var(--sp-space-2);z-index:var(--sp-zIndices-overlay)}.SandpackTests_previewActionsClassName__j85g840>*{margin-left:var(--sp-space-2)}.SandpackTests_containerClassName__j85g841{display:flex;flex-direction:column;font-family:var(--sp-font-mono);height:100%;overflow:auto;padding:var(--sp-space-4);position:relative}.SandpackTests_fileErrorContainerClassName__j85g842{color:var(--sp-colors-base);font-weight:700}.Describes_nameClassName__1lu5fex0{color:var(--sp-colors-hover);margin-bottom:var(--sp-space-2)}.Describes_containerClassName__1lu5fex1{margin-left:var(--sp-space-4)}.FormattedError_containerClassName__1fikslv0{color:var(--sp-colors-hover);font-size:var(--sp-font-size);padding:var(--sp-space-2);white-space:pre-wrap}.style_color_status_pass__ojrg0k1{color:var(--test-pass)}.style_color_status_fail__ojrg0k2{color:var(--test-fail)}.style_color_status_skip__ojrg0k3{color:var(--test-skip)}.style_color_status_title__ojrg0k4{color:var(--test-title)}.style_background_status_pass__ojrg0k6{background:var(--test-pass);color:var(--sp-colors-surface1)}.style_background_status_fail__ojrg0k7{background:var(--test-fail);color:var(--sp-colors-surface1)}.style_background_status_run__ojrg0k8{background:var(--test-run);color:var(--sp-colors-surface1)}.Tests_testContainerClassName__4deank0{margin-left:var(--sp-space-4)}.Tests_containerClassName__4deank1{color:var(--sp-colors-clickable);margin-bottom:var(--sp-space-2)}.Tests_testClassName__4deank2{color:var(--sp-colors-hover);margin-bottom:var(--sp-space-2)}.Tests_durationClassName__4deank3{margin-left:var(--sp-space-2)}.Tests_gapRightClassName__4deank4{margin-right:var(--sp-space-2)}.Specs_fileContainer__11ciksq0{align-items:center;display:flex;flex-direction:row}.Specs_fileContainer__11ciksq0,.Specs_gapBottomClassName__11ciksq1{margin-bottom:var(--sp-space-2)}.Specs_failTestClassName__11ciksq2{font-weight:700}.Specs_labelClassName__11ciksq3{border-radius:calc(var(--sp-border-radius)/2)}.Specs_specLabelClassName__11ciksq4{font-family:var(--sp-font-mono);margin-right:var(--sp-space-2);padding:var(--sp-space-1) var(--sp-space-2);text-transform:uppercase}.Specs_filePathButtonClassName__11ciksq5{cursor:pointer;display:inline-block;font-family:var(--sp-font-mono)}.Specs_filePathClassName__11ciksq6{color:var(--sp-colors-clickable);text-decoration-line:underline;text-decoration-style:dotted}.Specs_fileNameClassName__11ciksq7{color:var(--sp-colors-hover);font-weight:700;text-decoration-line:underline;text-decoration-style:dotted}.Summary_gapBottomClassName__10zqgxt0{margin-bottom:var(--sp-space-2)}.Summary_labelClassName__10zqgxt1{color:var(--sp-colors-hover);font-weight:700;white-space:pre-wrap}.Summary_containerClassName__10zqgxt2{color:var(--sp-colors-clickable);font-weight:700}.Stack_stackClassName__iyc2n40{background-color:var(--sp-colors-surface1);display:flex;flex-direction:column;gap:1px;position:relative;width:100%}.Stack_stackClassName__iyc2n40:has(.sp-stack){background-color:var(--sp-colors-surface2)}.StdoutList_consoleItemClassName__1kc9huv0{font-size:.85em;padding:var(--sp-space-3) var(--sp-space-2);position:relative;white-space:pre;width:100%}.StdoutList_consoleItemClassName__1kc9huv0:not(:first-child):after{background:var(--sp-colors-surface3);content:"";height:1px;left:0;position:absolute;right:0;top:0}@keyframes Loading_cubeRotate__7fje8k2{0%{transform:rotateX(-25.5deg) rotateY(45deg)}to{transform:rotateX(-25.5deg) rotateY(405deg)}}.Loading_cubeClassName__7fje8k0{transform:translate(-4px,9px) scale(.13)}.Loading_cubeClassName__7fje8k0 *{height:96px;position:absolute;width:96px}.Loading_wrapperClassName__7fje8k1{border-radius:var(--sp-border-radius);bottom:var(--sp-space-2);height:32px;position:absolute;right:var(--sp-space-2);width:32px;z-index:var(--sp-zIndices-top)}.Loading_wrapperClassName__7fje8k1 .Loading_cubeClassName__7fje8k0{display:flex}.Loading_wrapperClassName__7fje8k1 .sp-button.shared_buttonClassName__1p904c31{display:none}.Loading_wrapperClassName__7fje8k1:hover .sp-button.shared_buttonClassName__1p904c31{display:flex}.Loading_wrapperClassName__7fje8k1:hover .Loading_cubeClassName__7fje8k0,.Loading_wrapperClassName__7fje8k1:hover .sp-button.shared_buttonClassName__1p904c31>span{display:none}.Loading_sidesClassNames__7fje8k3{animation:Loading_cubeRotate__7fje8k2 1s linear infinite;animation-fill-mode:forwards;transform:rotateX(-25.5deg) rotateY(45deg);transform-style:preserve-3d}.Loading_sidesClassNames__7fje8k3 *{background:var(--sp-colors-surface1);border:10px solid var(--sp-colors-clickable);border-radius:8px}.Loading_sidesClassNames__7fje8k3 .top{transform:rotateX(90deg) translateZ(44px);transform-origin:50% 50%}.Loading_sidesClassNames__7fje8k3 .bottom{transform:rotateX(-90deg) translateZ(44px);transform-origin:50% 50%}.Loading_sidesClassNames__7fje8k3 .front{transform:rotateY(0deg) translateZ(44px);transform-origin:50% 50%}.Loading_sidesClassNames__7fje8k3 .back{transform:rotateY(-180deg) translateZ(44px);transform-origin:50% 50%}.Loading_sidesClassNames__7fje8k3 .left{transform:rotateY(-90deg) translateZ(44px);transform-origin:50% 50%}.Loading_sidesClassNames__7fje8k3 .right{transform:rotateY(90deg) translateZ(44px);transform-origin:50% 50%}.LoadingOverlay_loadingClassName__1vfccq60{background-color:var(--sp-colors-surface1)}.LoadingOverlay_errorTitleClassName__1vfccq61{font-weight:700}.LoadingOverlay_stdoutPreview__1vfccq62{bottom:var(--sp-space-8);left:0;opacity:.5;overflow:auto;overflow-x:hidden;position:absolute;right:0}.LoadingOverlay_progressClassName__1vfccq63{animation:shared_fadeIn__1p904c34 .15s ease;bottom:var(--sp-space-4);color:var(--sp-colors-clickable);font-family:var(--sp-font-mono);font-size:.8em;left:var(--sp-space-5);position:absolute;width:75%;z-index:var(--sp-zIndices-top)}.LoadingOverlay_progressClassName__1vfccq63 p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.RunButton_runButtonClassName__77twsk0{bottom:var(--sp-space-2);padding-right:var(--sp-space-3);position:absolute;right:var(--sp-space-2)}.DependenciesProgress_progressClassName__izw06z0{animation:shared_fadeIn__1p904c34 .15s ease;bottom:var(--sp-space-4);color:var(--sp-colors-clickable);font-family:var(--sp-font-mono);font-size:.8em;left:var(--sp-space-5);position:absolute;width:75%;z-index:var(--sp-zIndices-top)}.DependenciesProgress_progressClassName__izw06z0 p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Layout_layoutClassName__1crkgpd0{align-items:stretch;background-color:var(--sp-colors-surface2);border:1px solid var(--sp-colors-surface2);border-radius:var(--sp-border-radius);display:flex;flex-wrap:wrap;gap:1px;overflow:hidden;position:relative}.Layout_layoutClassName__1crkgpd0>.Stack_stackClassName__iyc2n40{flex-basis:0;flex-grow:1;flex-shrink:1;height:var(--sp-layout-height);overflow:hidden}.Layout_layoutClassName__1crkgpd0>.sp-file-explorer{flex:0.2 1;min-width:200px}@media print{.Layout_layoutClassName__1crkgpd0>.Stack_stackClassName__iyc2n40{display:block;height:auto}}@media screen and (max-width:768px){.Layout_layoutClassName__1crkgpd0>.Stack_stackClassName__iyc2n40{min-width:100%}.Layout_layoutClassName__1crkgpd0>.Stack_stackClassName__iyc2n40:not(.sp-preview,.sp-editor,.sp-preset-column){height:calc(var(--sp-layout-height)/2)}.Layout_layoutClassName__1crkgpd0>.sp-file-explorer{flex:1 1}}.Sandpack_dragHandler__1p1sley0{position:absolute;z-index:var(--sp-zIndices-top)}.Sandpack_dragHandler_direction_vertical__1p1sley1{cursor:ns-resize;height:10px;left:0;right:0}.Sandpack_dragHandler_direction_horizontal__1p1sley2{bottom:0;cursor:ew-resize;top:0;width:10px}.Sandpack_buttonCounter__1p1sley3{position:relative}.Sandpack_buttonCounter__1p1sley3 strong{background:var(--sp-colors-clickable);border-radius:12px;color:var(--sp-colors-surface1);font-size:8px;font-weight:400;height:12px;line-height:12px;min-width:12px;padding:0 2px;position:absolute;right:0;top:0}.Sandpack_consoleWrapper__1p1sley4{overflow:hidden;width:100%}.Sandpack_rtlLayoutClassName__1p1sley5{flex-direction:row-reverse}@media screen and (max-width:768px){.Sandpack_dragHandler__1p1sley0{display:none}.Sandpack_rtlLayoutClassName__1p1sley5{flex-flow:wrap-reverse!important;flex-direction:row}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-shell{--accent-1:#ff7ab6;--accent-2:#9b7cff;--accent-solid:#b58bff;--accent-grad:linear-gradient(115deg,var(--accent-1) 0%,var(--accent-2) 100%);--font-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Helvetica Neue",sans-serif;--font-mono:"Geist Mono",ui-monospace,"JetBrains Mono","SF Mono",Menlo,monospace;--radius-1:4px;--radius-2:6px;--radius-3:8px;--radius-4:12px;--density:1;--rail-w:48px;--topbar-h:40px;--t-fast:120ms cubic-bezier(.3,.7,.4,1);--t-base:180ms cubic-bezier(.3,.7,.4,1)}.app-shell[data-theme=dark]{--bg-0:#0b0c0f;--bg-1:#111318;--bg-2:#161920;--bg-3:#1c2028;--bg-hover:#ffffff0a;--bg-active:#ffffff12;--border:#ffffff0f;--border-2:#ffffff1a;--border-strong:#ffffff2e;--text-1:#e6e8ec;--text-2:#9ba1ab;--text-3:#6a6f78;--text-4:#4a4f57;--shadow-pop:0 1px 0 #ffffff0a inset,0 12px 32px #0000008c,0 2px 6px #0006;--shadow-rail:0 8px 24px #0006;--selection:#9b7cff47;--code-bg:#0e1014;color-scheme:dark}.app-shell[data-theme=light]{--bg-0:#fbfbfc;--bg-1:#fff;--bg-2:#f4f5f7;--bg-3:#ebedf0;--bg-hover:#0000000a;--bg-active:#0000000f;--border:#0000000f;--border-2:#0000001a;--border-strong:#00000038;--text-1:#1a1c20;--text-2:#565a62;--text-3:#888d96;--text-4:#b3b7bf;--shadow-pop:0 1px 0 #fff9 inset,0 12px 32px #14161c2e,0 2px 6px #14161c14;--shadow-rail:0 8px 24px #14161c1f;--selection:#9b7cff38;--code-bg:#fafbfc;color-scheme:light}.app-shell *,.app-shell :after,.app-shell :before{box-sizing:border-box}.app-shell button{color:inherit;font-family:inherit}.app-shell .brand-mark{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:#0000;font-family:var(--font-sans);font-weight:600;letter-spacing:-.01em}.app-shell{-webkit-font-smoothing:antialiased;background:var(--bg-0);color:var(--text-1);display:grid;font-family:var(--font-sans);font-size:13px;grid-template-rows:var(--topbar-h) 1fr;height:100vh;line-height:1.4;overflow:hidden;width:100%}.app-shell ::selection{background:var(--selection)}.app-shell .workbench{border-top:1px solid var(--border);display:grid;grid-template-columns:var(--rail-w) 240px 1fr;min-height:0}.app-shell .workbench[data-panel-collapsed="1"]{grid-template-columns:var(--rail-w) 0 1fr}.app-shell .present-frame-parent{display:grid;grid-template:1fr/1fr;min-height:0;min-width:0}.app-shell .present-frame{background:var(--bg-0);border-top:1px solid var(--border);min-height:0;position:relative}.app-shell .editor-area{background:var(--bg-0);display:grid;grid-template-columns:1fr 1fr;min-height:0;min-width:0}.app-shell .editor-area>.epane,.app-shell .editor-area>.ppane{min-height:0;min-width:0;overflow:hidden}.app-shell .editor-area>.ppane{border-left:1px solid var(--border)}.app-shell .ed-wrap{display:flex;flex-direction:column;height:100%;min-height:0;min-width:0}.app-shell .ed-code{flex:1 1;min-height:0;min-width:0;overflow:hidden}.app-shell .tabs-bar{align-items:stretch;background:var(--bg-1);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;height:32px;min-width:0;overflow:hidden}.app-shell .tabs-scroll{display:flex;flex:1 1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.app-shell .tabs-scroll::-webkit-scrollbar{display:none}.app-shell .tab{align-items:center;background:#0000;border-right:1px solid var(--border);color:var(--text-2);cursor:pointer;display:flex;flex-shrink:0;font-size:12.5px;gap:6px;height:32px;min-width:0;padding:0 8px 0 10px;position:relative}.app-shell .tab:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .tab[data-active="1"]{background:var(--bg-0);color:var(--text-1)}.app-shell .tab[data-active="1"]:before{background:var(--accent-grad);content:"";height:2px;left:0;position:absolute;right:0;top:0}.app-shell .tab .ic{display:grid;flex-shrink:0;height:12px;place-items:center;width:12px}.app-shell .tab .ic svg{height:12px;width:12px}.app-shell .tab .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .tab .close{border-radius:3px;color:var(--text-3);display:grid;flex-shrink:0;height:16px;margin-left:2px;place-items:center;width:16px}.app-shell .tab .close:hover{background:var(--bg-active);color:var(--text-1)}.app-shell .tabs-bar .tabs-actions{align-items:center;border-left:1px solid var(--border);display:flex;flex-shrink:0;gap:2px;padding:0 6px}.app-shell .tabs-bar .icon-btn{background:#0000;border:0;border-radius:4px;color:var(--text-3);cursor:pointer;display:grid;height:22px;place-items:center;width:22px}.app-shell .tabs-bar .icon-btn:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .tabs-bar .icon-btn svg{height:13px;width:13px}.app-shell .mode-switch{align-items:stretch;background:var(--bg-2);border:1px solid var(--border-2);border-radius:999px;box-shadow:inset 0 1px 2px #00000026;display:inline-flex;font-size:12px;height:26px;padding:2px;position:relative}.app-shell .mode-switch .mso-thumb{background:var(--accent-grad);border-radius:999px;bottom:2px;box-shadow:0 1px 2px #00000040,inset 0 0 0 .5px #fff3;position:absolute;top:2px;transition:transform var(--t-base),width var(--t-base);z-index:0}.app-shell .mode-switch button{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:999px;color:var(--text-2);cursor:pointer;display:inline-flex;font:inherit;font-weight:500;gap:5px;letter-spacing:.01em;padding:0 10px;position:relative;text-decoration:none;transition:color var(--t-fast);z-index:1}.app-shell .mode-switch button[data-on="1"]{color:#fff;text-shadow:0 1px 0 #00000026}.app-shell .mode-switch button svg{height:12px;width:12px}.app-shell .mode-switch .live{background:#5ecf8b;border-radius:50%;flex-shrink:0;height:6px;margin-right:-2px;position:relative;width:6px}.app-shell .mode-switch .live:after{animation:livepulse 1.6s cubic-bezier(.4,0,.2,1) infinite;border:1.5px solid #5ecf8b;border-radius:50%;content:"";inset:-3px;position:absolute}@keyframes livepulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.app-shell .topbar{align-items:center;background:var(--bg-1);border-bottom:1px solid var(--border);display:flex;gap:8px;min-width:0;padding:0 8px 0 12px}.app-shell .topbar .brand{align-items:center;border-radius:var(--radius-2);display:flex;font-size:13px;gap:8px;padding:4px 6px}.app-shell .topbar .brand-logo{background:var(--accent-grad);border-radius:5px;box-shadow:0 1px 2px #0000004d,inset 0 0 0 .5px #ffffff26;display:grid;flex-shrink:0;height:18px;overflow:hidden;place-items:center;position:relative;width:18px}.app-shell .topbar .brand-logo:after{background:#fffffff2;content:"";inset:0;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27><path d=%27M14.5 4.5a4 4 0 0 0-5.66 5.66l-4.84 4.84a1 1 0 1 0 1.41 1.41l4.84-4.84a4 4 0 0 0 5.66-5.66l-2.12 2.12-1.42-1.42z%27 fill=%27black%27/></svg>") center/12px no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27><path d=%27M14.5 4.5a4 4 0 0 0-5.66 5.66l-4.84 4.84a1 1 0 1 0 1.41 1.41l4.84-4.84a4 4 0 0 0 5.66-5.66l-2.12 2.12-1.42-1.42z%27 fill=%27black%27/></svg>") center/12px no-repeat;position:absolute}.app-shell .topbar .project-switch{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-2);color:var(--text-1);cursor:default;display:flex;font-size:12.5px;gap:6px;max-width:320px;padding:4px 8px 4px 10px}.app-shell .topbar .project-switch:hover{background:var(--bg-hover)}.app-shell .topbar .project-switch .sep{color:var(--text-4);margin:0 2px}.app-shell .topbar .project-switch .name{color:var(--text-2);white-space:nowrap}.app-shell .topbar .project-switch .current{color:var(--text-1);font-weight:500;white-space:nowrap}.app-shell .topbar .project-switch .chev{color:var(--text-3)}.app-shell .topbar .palette-trigger{align-items:center;background:#0000;border:1px solid #0000;border-radius:var(--radius-2);color:var(--text-2);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;height:26px;padding:0 8px;transition:background var(--t-fast),color var(--t-fast)}.app-shell .topbar .palette-trigger:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .topbar .palette-trigger .kbd{background:var(--bg-2);border:1px solid var(--border);border-radius:3px;color:var(--text-3);font-family:var(--font-mono);font-size:10.5px;padding:1px 5px}.app-shell .topbar .actions{align-items:center;display:flex;gap:4px}.app-shell .tb-btn{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:1px solid #0000;border-radius:var(--radius-2);color:var(--text-2);cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:500;gap:6px;height:26px;padding:0 8px;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.app-shell .tb-btn:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .tb-btn[data-variant=github]{background:var(--accent-grad);border-color:#0000;box-shadow:inset 0 0 0 .5px #ffffff38,inset 0 1px 0 #ffffff2e,0 4px 14px #9b7cff52,0 2px 4px #0000002e;color:#fff;font-weight:600;height:28px;padding:0 14px;text-shadow:0 1px 0 #0000002e;transition:filter var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)}.app-shell .tb-btn[data-variant=github]:hover{box-shadow:inset 0 0 0 .5px #ffffff47,inset 0 1px 0 #ffffff38,0 6px 18px #9b7cff73,0 2px 6px #0000003d;filter:brightness(1.08);transform:translateY(-1px)}.app-shell .tb-btn[data-variant=github] svg{filter:drop-shadow(0 1px 0 rgba(0,0,0,.18))}.app-shell .tb-btn[data-variant=ghost-icon]{justify-content:center;padding:0;width:26px}.app-shell .avatar-pill{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;color:var(--text-1);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;height:26px;padding:2px 8px 2px 2px}.app-shell .avatar-pill:hover{background:var(--bg-3)}.app-shell .avatar-pill .av{background:linear-gradient(135deg,#ff9cc4,#b58bff,#6e8dff);border-radius:50%;box-shadow:inset 0 0 0 .5px #fff3;color:#fff;display:grid;font-size:10px;font-weight:600;height:20px;overflow:hidden;place-items:center;width:20px}.app-shell .avatar-pill .av img{height:100%;object-fit:cover;width:100%}.app-shell .rail{background:var(--bg-1);border-right:1px solid var(--border);min-height:0;overflow:hidden;padding:6px 0}.app-shell .rail,.app-shell .rail .group{align-items:center;display:flex;flex-direction:column;gap:2px}.app-shell .rail .group.bottom{margin-top:auto;padding-bottom:4px}.app-shell .rail .ri{background:#0000;border:0;border-radius:var(--radius-2);color:var(--text-3);cursor:pointer;display:grid;height:34px;place-items:center;position:relative;transition:color var(--t-fast),background var(--t-fast);width:34px}.app-shell .rail .ri:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .rail .ri[data-active="1"]{background:var(--bg-active);color:var(--text-1)}.app-shell .rail .ri[data-active="1"]:before{background:var(--accent-grad);border-radius:0 2px 2px 0;bottom:8px;content:"";left:-7px;position:absolute;top:8px;width:2px}.app-shell .rail .ri svg{height:18px;width:18px}.app-shell .rail .ri[data-empty="1"]{border:1px dashed var(--border-2);cursor:default;opacity:.35}.app-shell .rail .ri .badge{background:var(--accent-solid);border-radius:7px;box-shadow:0 0 0 2px var(--bg-1);color:#fff;display:grid;font-size:9.5px;font-weight:600;height:14px;min-width:14px;padding:0 4px;place-items:center;position:absolute;right:4px;top:4px}.app-shell .side-panel{background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.app-shell .side-panel .sp-hd{align-items:center;display:flex;flex-shrink:0;height:32px;justify-content:space-between;padding:0 4px 0 12px}.app-shell .side-panel .sp-title{color:var(--text-3);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.app-shell .side-panel .sp-actions{display:flex;gap:2px}.app-shell .side-panel .icon-btn{background:#0000;border:0;border-radius:4px;color:var(--text-3);cursor:pointer;display:grid;height:22px;place-items:center;width:22px}.app-shell .side-panel .icon-btn:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .side-panel .icon-btn svg{height:13px;width:13px}.app-shell .side-panel .sp-body{flex:1 1;overflow:auto;padding-bottom:8px}.app-shell .fx-root{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.app-shell .fx-root ul{list-style:none;margin:0;padding:0}.app-shell .fx-tree{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding-bottom:8px}.app-shell .ft-row .ft-input{background:var(--bg-2);border:1px solid var(--accent-solid);border-radius:3px;color:var(--text-1);flex:1 1;font-family:inherit;font-size:12.5px;height:18px;min-width:0;outline:none;padding:0 4px}.app-shell .ft-row .ft-input[data-error="1"]{border-color:#e5534b}.app-shell .ft-row .ft-input::placeholder{color:var(--text-3)}.app-shell .ft-row{align-items:center;color:var(--text-2);cursor:pointer;display:flex;font-size:12.5px;gap:6px;height:22px;padding:0 12px 0 8px;position:relative;white-space:nowrap}.app-shell .ft-row:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .ft-row[data-active="1"]{background:var(--bg-active);color:var(--text-1)}.app-shell .ft-row[data-active="1"]:after{background:var(--accent-grad);bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.app-shell .ft-row .chev{color:var(--text-3);display:grid;flex-shrink:0;height:12px;place-items:center;transition:transform var(--t-fast);width:12px}.app-shell .ft-row .chev[data-open="1"]{transform:rotate(90deg)}.app-shell .ft-row .ic{display:grid;flex-shrink:0;height:14px;place-items:center;width:14px}.app-shell .ft-row .ic svg{height:14px;width:14px}.app-shell .ft-row .label{overflow:hidden;text-overflow:ellipsis}.app-shell .ft-row .ft-entry{color:var(--text-3);font-size:10px;letter-spacing:.04em;margin-left:auto}.app-shell .ft-row .ft-del{background:#0000;border:0;border-radius:3px;color:var(--text-3);cursor:pointer;display:grid;height:16px;margin-left:auto;opacity:0;place-items:center;width:16px}.app-shell .ft-row:hover .ft-del{opacity:1}.app-shell .ft-row .ft-del:hover{background:var(--bg-active);color:var(--text-1)}.app-shell .soon-pill{background:var(--bg-2);border:1px solid var(--border);border-radius:3px;color:var(--text-3);font-size:9.5px;font-weight:600;letter-spacing:.06em;padding:2px 6px;text-transform:uppercase}.app-shell .coming-soon{align-items:center;display:flex;flex-direction:column;gap:10px;padding:20px 16px;text-align:center}.app-shell .coming-soon .cs-icon{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;color:var(--text-3);display:grid;height:40px;margin-bottom:4px;place-items:center;width:40px}.app-shell .coming-soon .cs-icon svg{height:20px;width:20px}.app-shell .coming-soon .cs-blurb{color:var(--text-2);font-size:13px;line-height:1.45}.app-shell .coming-soon .cs-blurb .muted{color:var(--text-3)}.app-shell .overlay-bg{animation:ovbg var(--t-base);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;display:grid;inset:0;padding-top:12vh;place-items:start center;position:fixed;z-index:1000}@keyframes ovbg{0%{opacity:0}}.app-shell .palette{animation:popin var(--t-base);background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--radius-4);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;max-height:64vh;overflow:hidden;width:min(640px,92vw)}@keyframes popin{0%{opacity:0;transform:translateY(-8px) scale(.98)}}.app-shell .palette .pal-input{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:8px;padding:12px 14px}.app-shell .palette .pal-input svg{color:var(--text-3);flex-shrink:0;height:16px;width:16px}.app-shell .palette .pal-input input{background:#0000;border:0;color:var(--text-1);flex:1 1;font-family:inherit;font-size:15px;outline:0}.app-shell .palette .pal-input input::placeholder{color:var(--text-3)}.app-shell .palette .pal-input .esc{border:1px solid var(--border);border-radius:4px;color:var(--text-3);font-family:var(--font-mono);font-size:10.5px;padding:1px 6px}.app-shell .palette .pal-list{overflow-y:auto;padding:4px}.app-shell .palette .pal-group-hd{color:var(--text-3);font-size:10px;font-weight:600;letter-spacing:.08em;padding:8px 10px 4px;text-transform:uppercase}.app-shell .palette .pal-item{align-items:center;border-radius:6px;color:var(--text-1);cursor:pointer;display:flex;font-size:13px;gap:10px;padding:7px 10px}.app-shell .palette .pal-item .ic{color:var(--text-2);display:grid;flex-shrink:0;height:16px;place-items:center;width:16px}.app-shell .palette .pal-item .ic svg{height:14px;width:14px}.app-shell .palette .pal-item .kb{font-family:var(--font-mono)}.app-shell .palette .pal-item .hint,.app-shell .palette .pal-item .kb{color:var(--text-3);font-size:11px;margin-left:auto}.app-shell .palette .pal-item[data-active="1"]{background:var(--bg-active)}.app-shell .palette .pal-empty{color:var(--text-3);font-size:13px;padding:24px 14px;text-align:center}.app-shell .palette .pal-foot{align-items:center;border-top:1px solid var(--border);color:var(--text-3);display:flex;font-size:11px;gap:12px;padding:8px 14px}.app-shell .palette .pal-foot .k{background:var(--bg-1);border:1px solid var(--border);border-radius:3px;color:var(--text-2);font-family:var(--font-mono);margin-right:4px;padding:0 5px}.app-shell .signin{animation:popin var(--t-base);background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-4);box-shadow:var(--shadow-pop);padding:28px 28px 22px;position:relative;width:min(420px,92vw)}.app-shell .signin .close-x{background:#0000;border:0;border-radius:4px;color:var(--text-3);cursor:pointer;display:grid;height:24px;place-items:center;position:absolute;right:12px;top:12px;width:24px}.app-shell .signin .close-x:hover{background:var(--bg-hover);color:var(--text-1)}.app-shell .signin .ttl{font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}.app-shell .signin .sub{color:var(--text-2);font-size:13px;line-height:1.5;margin:0 0 18px}.app-shell .signin .gh-btn{align-items:center;background:#fff;border:0;border-radius:8px;color:#1a1c20;cursor:pointer;display:flex;font-family:inherit;font-size:13.5px;font-weight:600;gap:10px;height:38px;justify-content:center;margin-bottom:12px;width:100%}.app-shell .signin .gh-btn:hover{background:#f4f5f7}.app-shell .signin .gh-btn svg{height:18px;width:18px}.app-shell .signin .scopes{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;color:var(--text-2);display:flex;flex-direction:column;font-size:12px;gap:6px;margin-bottom:14px;padding:10px 12px}.app-shell .signin .scopes .sc{align-items:center;display:flex;gap:8px}.app-shell .signin .scopes .sc svg{color:#5ecf8b;flex-shrink:0;height:11px;width:11px}.app-shell .signin .skip{color:var(--text-3);cursor:pointer;font-size:12px;text-align:center}.app-shell .signin .skip:hover{color:var(--text-1)}.app-shell .signin .skip u{text-decoration:underline;text-underline-offset:2px}.app-shell .menu-pop{animation:popin var(--t-base);background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--radius-3);box-shadow:var(--shadow-pop);min-width:220px;padding:4px;position:absolute;right:0;top:36px;z-index:100}.app-shell .menu-pop .mi{align-items:center;border-radius:5px;color:var(--text-1);cursor:pointer;display:flex;font-size:12.5px;gap:10px;padding:6px 10px}.app-shell .menu-pop .mi:hover{background:var(--bg-active)}.app-shell .menu-pop .mi .ic{color:var(--text-3);display:grid;flex-shrink:0;height:14px;place-items:center;width:14px}.app-shell .menu-pop .mi .kb{color:var(--text-3);font-family:var(--font-mono);font-size:11px;margin-left:auto}.app-shell .menu-pop .mi[data-disabled="1"]{color:var(--text-3);cursor:default}.app-shell .menu-pop .mi[data-disabled="1"]:hover{background:#0000}.app-shell .menu-pop .mi[data-disabled="1"] .pill{background:var(--bg-3);border-radius:3px;color:var(--text-3);font-size:9.5px;font-weight:600;letter-spacing:.05em;margin-left:auto;padding:1px 5px;text-transform:uppercase}.app-shell .menu-pop .sep{background:var(--border);height:1px;margin:4px 0}.app-shell .menu-pop .sect{color:var(--text-3);font-size:9.5px;font-weight:600;letter-spacing:.08em;padding:8px 10px 2px;text-transform:uppercase}.app-shell .tooltip{animation:ttin .1s ease-out;background:var(--bg-3);border:1px solid var(--border-2);border-radius:5px;box-shadow:0 4px 12px #0000004d;color:var(--text-1);font-size:11.5px;padding:4px 8px;pointer-events:none;position:absolute;white-space:nowrap;z-index:200}@keyframes ttin{0%{opacity:0;transform:translateX(-2px)}}.app-shell .kbd{background:var(--bg-2);border:1px solid var(--border);border-radius:3px;color:var(--text-3);font-family:var(--font-mono);font-size:10.5px;padding:1px 4px}.app-shell .editor-area .sp-stack,.app-shell .editor-area .sp-wrapper{height:100%!important}@media (max-width:768px){.app-shell[data-mode=edit] .editor-area{grid-template-columns:1fr}.app-shell[data-mode=edit] .editor-area>.ppane{display:none}.app-shell[data-mode=edit] .workbench,.app-shell[data-mode=edit] .workbench[data-panel-collapsed="0"],.app-shell[data-mode=edit] .workbench[data-panel-collapsed="1"]{grid-template-columns:var(--rail-w) 0 1fr;position:relative}.app-shell[data-mode=edit] .side-panel{bottom:0;box-shadow:2px 0 16px #00000059;left:var(--rail-w);max-width:calc(100% - var(--rail-w));position:absolute;top:0;transition:transform var(--t-base);width:240px;z-index:20}.app-shell[data-mode=edit] .workbench[data-panel-collapsed="1"] .side-panel{pointer-events:none;transform:translateX(calc(-100% - var(--rail-w)))}}.app-shell .contribute-mono{color:var(--text-1);font-family:var(--font-mono);font-size:11.5px}.app-shell .contribute-muted{color:var(--text-3)}.app-shell .contribute-link{color:var(--accent-solid);font-size:12px;text-decoration:none}.app-shell .contribute-link:hover{text-decoration:underline}.app-shell .contribute-header{border-bottom:1px solid var(--border);padding:10px 12px}.app-shell .contribute-header-line{align-items:center;display:flex;flex-wrap:wrap;font-size:12.5px;gap:4px}.app-shell .contribute-header-sub{align-items:center;color:var(--text-3);display:flex;font-size:11.5px;gap:6px;margin-top:4px}.app-shell .contribute-warn-pill{background:#ffb85c2e;border-radius:999px;color:#f0b063;font-size:10px;font-weight:600;padding:1px 6px}.app-shell .contribute-loading{color:var(--text-3);font-size:12px;padding:14px 12px}.app-shell .contribute-error{background:#e559591a;border-radius:var(--radius-2);color:#e88989;font-size:12px;margin:10px 12px;padding:12px}.app-shell .contribute-empty{padding:24px 14px;text-align:center}.app-shell .contribute-empty-msg{color:var(--text-2);font-size:12.5px}.app-shell .contribute-empty-sub{color:var(--text-3);font-size:11.5px;margin-top:4px}.app-shell .contribute-changes{padding:8px 4px}.app-shell .contribute-change-group{padding:4px 0}.app-shell .contribute-change-group-hd{align-items:center;color:var(--text-2);display:flex;font-size:11px;font-weight:600;gap:6px;letter-spacing:.04em;padding:4px 10px;text-transform:uppercase}.app-shell .contribute-change-badge{align-items:center;border-radius:4px;color:var(--bg-0);display:inline-flex;font-family:var(--font-mono);font-size:10px;font-weight:700;height:16px;justify-content:center;width:16px}.app-shell .contribute-change-badge[data-kind=created]{background:#5ecf8b}.app-shell .contribute-change-badge[data-kind=modified]{background:#f0b063}.app-shell .contribute-change-badge[data-kind=deleted]{background:#e88989}.app-shell .contribute-change-path{color:var(--text-1);font-family:var(--font-mono);font-size:11.5px;overflow:hidden;padding:3px 28px;text-overflow:ellipsis;white-space:nowrap}.app-shell .contribute-phantom-footer,.app-shell .contribute-warnings{background:var(--bg-2);border-radius:var(--radius-2);color:var(--text-3);font-size:11.5px;margin:8px 12px;padding:8px 10px}.app-shell .contribute-warn-row{padding:2px 0}.app-shell .contribute-phantom-toggle{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;font-size:11.5px;gap:8px;justify-content:space-between;padding:0;text-align:left;width:100%}.app-shell .contribute-phantom-list{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.app-shell .contribute-prs{border-top:1px solid var(--border);margin-top:10px;padding:10px 12px}.app-shell .contribute-prs-title{color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.app-shell .contribute-pr-row{align-items:center;border-radius:var(--radius-1);color:var(--text-1);display:flex;font-size:12px;gap:6px;padding:5px 6px;text-decoration:none}.app-shell .contribute-pr-row:hover{background:var(--bg-hover)}.app-shell .contribute-pr-state{background:var(--bg-2);border-radius:999px;color:var(--text-2);font-size:10px;letter-spacing:.04em;padding:1px 5px;text-transform:uppercase}.app-shell .contribute-pr-state[data-state=open]{background:#2ea0431f;color:#2ea043}.app-shell .contribute-pr-state[data-state=merged]{background:#a371f71f;color:#a371f7}.app-shell .contribute-pr-state[data-state=closed]{background:#f851491f;color:#f85149}.app-shell .contribute-pr-title{color:var(--text-2);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .contribute-sp-footer{background:var(--bg-1);border-top:1px solid var(--border);padding:10px 12px}.app-shell .contribute-cta{align-items:center;background:var(--accent-grad);border:0;border-radius:var(--radius-2);color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:12.5px;font-weight:600;gap:8px;height:32px;justify-content:center;transition:filter var(--t-fast);width:100%}.app-shell .contribute-cta:hover:not(:disabled){filter:brightness(1.05)}.app-shell .contribute-cta:disabled{background:var(--bg-3);color:var(--text-3);cursor:not-allowed}.app-shell .contribute-btn-secondary{align-items:center;background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--radius-2);color:var(--text-1);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12.5px;gap:6px;height:32px;justify-content:center;padding:0 12px}.app-shell .contribute-btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.app-shell .contribute-btn-secondary:disabled{color:var(--text-3);cursor:not-allowed}.app-shell .contribute-reveal-diff{background:#0000;border:1px dashed var(--border-2);border-radius:var(--radius-2);color:var(--text-2);cursor:pointer;font:inherit;font-size:11.5px;margin:8px 0 0;padding:6px 8px;text-align:center}.app-shell .contribute-reveal-diff:hover{background:var(--bg-2);color:var(--text-1)}.app-shell .diff-modal{background:var(--bg-1);border:1px solid var(--border-2);border-radius:12px;box-shadow:var(--shadow-pop);color:var(--text-1);font-family:var(--font-sans);max-height:90vh;overflow-y:auto;padding:22px 24px 18px;position:relative;width:min(960px,calc(100% - 40px))}.app-shell .diff-modal .ttl{font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}.app-shell .diff-modal .sub{color:var(--text-2);font-size:13px;margin:0 0 14px}.app-shell .diff-modal-body{display:flex;flex-direction:column;gap:14px}.app-shell .diff-file{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-2);overflow:hidden}.app-shell .diff-file-hd{align-items:center;background:var(--bg-2);border-bottom:1px solid var(--border);display:flex;font-size:12.5px;gap:8px;padding:8px 10px}.app-shell .diff-file-path{color:var(--text-1);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .diff-file-status{color:var(--text-3);font-size:12px;padding:10px 12px}.app-shell .diff-file-error{color:#f85149}.app-shell .diff-body{background:var(--bg-1);font-family:var(--font-mono);font-size:11.5px;line-height:1.45;overflow-x:auto}.app-shell .diff-row{align-items:baseline;display:grid;grid-template-columns:44px 44px 16px 1fr;padding:0 8px 0 0}.app-shell .diff-row[data-kind=add]{background:#2ea0431a}.app-shell .diff-row[data-kind=del]{background:#f851491a}.app-shell .diff-gutter{border-right:1px solid var(--border);padding:0 6px;text-align:right}.app-shell .diff-gutter,.app-shell .diff-sign{color:var(--text-3);-webkit-user-select:none;user-select:none}.app-shell .diff-sign{text-align:center}.app-shell .diff-row[data-kind=add] .diff-sign{color:#2ea043}.app-shell .diff-row[data-kind=del] .diff-sign{color:#f85149}.app-shell .diff-text{color:var(--text-1);white-space:pre}.app-shell .contribute-modal{background:var(--bg-1);border:1px solid var(--border-2);border-radius:12px;box-shadow:var(--shadow-pop);color:var(--text-1);font-family:var(--font-sans);max-height:86vh;overflow-y:auto;padding:22px 24px 18px;position:relative;width:min(560px,calc(100% - 40px))}.app-shell .contribute-modal .ttl{font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}.app-shell .contribute-modal .sub{color:var(--text-2);font-size:13px;line-height:1.5;margin:0 0 14px}.app-shell .contribute-modal-summary{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-2);color:var(--text-2);display:flex;flex-wrap:wrap;font-size:12.5px;gap:6px;margin-bottom:14px;padding:10px 12px}.app-shell .contribute-form{display:flex;flex-direction:column;gap:14px;margin-bottom:12px}.app-shell .contribute-field{display:flex;flex-direction:column;gap:6px}.app-shell .contribute-field-label{color:var(--text-2);font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.app-shell .contribute-input,.app-shell .contribute-textarea{background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--radius-2);color:var(--text-1);font-family:var(--font-mono);font-size:12.5px;outline:none;padding:8px 10px;resize:vertical}.app-shell .contribute-input:focus,.app-shell .contribute-textarea:focus{border-color:var(--accent-solid)}.app-shell .contribute-field-error{color:#e88989;font-size:11.5px}.app-shell .contribute-checkbox{align-items:flex-start;color:var(--text-2);cursor:pointer;display:flex;font-size:12px;gap:8px}.app-shell .contribute-checkbox input{margin-top:2px}.app-shell .contribute-progress{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-2);display:flex;flex-direction:column;font-size:12px;gap:4px;margin-top:14px;max-height:200px;overflow-y:auto;padding:10px 12px}.app-shell .contribute-progress-row{align-items:center;color:var(--text-2);display:flex;gap:8px}.app-shell .contribute-progress-row[data-kind=warn]{color:#f0b063}.app-shell .contribute-progress-row[data-kind=error]{color:#e88989}.app-shell .contribute-progress-dot{background:currentColor;border-radius:999px;flex-shrink:0;height:5px;width:5px}.app-shell .contribute-success{align-items:center;background:#5ecf8b1a;border-radius:var(--radius-2);color:var(--text-1);display:flex;gap:12px;margin:14px 0;padding:14px}.app-shell .contribute-success svg{color:#5ecf8b;flex-shrink:0}.app-shell .contribute-success-title{font-weight:600;margin-bottom:2px}.app-shell .contribute-error-box{background:#e5595914;border:1px solid #e559594d;border-radius:var(--radius-2);color:#e88989;font-size:12px;margin:14px 0;padding:10px 12px;white-space:pre-wrap}.app-shell .contribute-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.app-shell .contribute-actions .contribute-cta{padding:0 16px;width:auto}.app-shell .contribute-install{padding:12px 8px 4px;text-align:center}.app-shell .contribute-install-icon{color:var(--text-2);display:flex;justify-content:center;margin-bottom:10px}.app-shell .contribute-install-title{font-size:14px;font-weight:600;margin:0 0 6px}.app-shell .contribute-install-blurb{color:var(--text-2);font-size:12.5px;line-height:1.5;margin:0 0 16px}.app-shell .contribute-install-actions{display:flex;flex-direction:column;gap:8px}.app-shell .contribute-install-actions .contribute-cta{width:100%}
/*# sourceMappingURL=main.f56015f2.css.map*/