.code-example [hidden],.playground [hidden]{display:none!important}.code-example{border-radius:10px}.code-scroll .shiki,.code-scroll .shiki span,[data-theme=light] .code-scroll .shiki,[data-theme=light] .code-scroll .shiki span{background-color:#0000!important}.code-scroll .line.highlighted-line{background:color-mix(in srgb, var(--accent) 7%, transparent)!important}.prose .code-scroll pre{padding:16px 12px;font-size:13px;line-height:1.85}.code-toolbar{background:var(--surface);padding:7px 12px}.code-toolbar .code-icon-button{border:0;place-items:center;width:36px;height:36px;padding:8px;display:grid}.code-toolbar svg,.playground button svg{flex:none;width:18px;height:18px}.code-filename{align-items:center}.code-edit-cta{border-top:1px solid var(--line);padding:12px}.code-edit-cta button{border:1px solid color-mix(in srgb, var(--accent) 50%, var(--line));background:color-mix(in srgb, var(--accent) 9%, var(--surface));width:100%;color:var(--ink);font:600 15px/1.8 var(--font);text-align:right;border-radius:8px;align-items:center;gap:14px;padding:15px 18px;transition:background .2s,border-color .2s;display:flex}.code-edit-cta button:hover{background:color-mix(in srgb, var(--accent) 17%, var(--surface));border-color:var(--accent)}.code-edit-cta button>span:last-child{margin-inline-start:auto;font-size:22px}.code-edit-cta button>span>span{color:var(--muted);font-size:11px;font-weight:400;display:block}.edit-cta-icon{background:var(--accent);width:42px;height:42px;color:var(--action-ink);border-radius:10px;place-items:center;display:grid}.edit-cta-icon svg{width:24px;height:24px}.initial-preview{border-top:1px solid var(--line);margin:0}.initial-preview summary{color:var(--muted);cursor:pointer;padding:10px 14px;font-size:12px}.initial-preview iframe{background:#f6f7f9;border:0;width:100%;height:240px;display:block}.playground{--editor-height:380px;--code-width:50%;border:0;min-width:0}.playground-toolbar{flex-wrap:wrap;gap:8px;padding:8px 10px}.playground-toolbar>.lab-file-label{letter-spacing:0;overflow-wrap:anywhere;font:12px/1.8 ui-monospace,monospace}.playground-toolbar>div{flex-wrap:wrap;gap:4px}.playground-toolbar button{justify-content:center;align-items:center;gap:6px;min-width:34px;min-height:36px;padding:6px 9px;font-size:12px;display:inline-flex}.playground .workspace{grid-template-columns:minmax(0, var(--code-width)) 8px minmax(0, 1fr);direction:ltr;display:grid}.playground .workspace[data-panels=code-]{grid-template-columns:minmax(0,1fr) 44px}.playground .workspace[data-panels=-preview]{grid-template-columns:44px minmax(0,1fr)}.playground .workspace[data-panels=\-]{grid-template-columns:1fr 1fr}.playground .lab-panel{background:var(--surface);border:0;min-width:0}.playground .panel-heading{border:0;border-bottom:1px solid var(--line);background:var(--paper);direction:rtl;border-radius:0;align-items:center;gap:9px;width:100%;min-height:40px;padding:8px 12px;font-size:12px;display:flex}.panel-title{text-align:right;flex:1}.editor-layout{grid-template-columns:110px minmax(0,1fr);min-width:0;display:grid}.playground .file-tree{max-height:var(--editor-height);padding:8px 4px;overflow:auto}.playground .file-tree button{padding:6px;font-size:11px}.editor-frame{min-width:0;overflow:hidden}.code-editor,.code-editor .cm-editor,.playground .preview-panel-body,.playground .workspace-preview iframe,.playground .preview-empty{height:var(--editor-height)}.playground .workspace-preview iframe{border:0;width:100%;display:block}.playground .preview-empty{min-height:0;font-size:12px}.playground .preview-empty p,.prose .playground .preview-empty p{color:var(--ink);background:0 0;margin:0;font-size:13px}.playground .preview-empty small{color:var(--muted);line-height:2}.playground .workspace-splitter{background:var(--paper);cursor:col-resize;touch-action:none;border:0;border-radius:0;place-items:center;width:8px;min-width:8px;min-height:0;padding:0;display:grid}.workspace-splitter span{background:var(--line);border-radius:4px;width:2px;height:34px}.playground .workspace-splitter:hover,.playground .workspace-splitter:focus-visible{background:var(--wash)}.playground .workspace-resizer{border:0;border-block:1px solid var(--line);cursor:row-resize;touch-action:none;border-radius:0;place-items:center;width:100%;min-height:12px;padding:0;display:grid}.workspace-resizer span{background:var(--muted);border-radius:4px;width:36px;height:3px}.playground .console-toolbar{border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;padding:5px 10px;display:flex}.console-toolbar button{border:0}.playground .console-output{resize:vertical;background:var(--surface);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;height:120px;min-height:80px;max-height:300px;padding:12px 16px;font:12px/1.9 ui-monospace,monospace;overflow:auto}.console-output .error{color:#f08d94}.console-output .status,.console-placeholder{color:var(--muted)}.playground .playground-note{border-top:1px solid var(--line);color:var(--muted);margin:0;padding:10px 14px;font-size:11px;line-height:1.9}.playground.is-expanded{z-index:5000;border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;display:flex;position:fixed;inset:12px;overflow:auto;box-shadow:0 0 0 30px #0008}.playground.is-expanded .workspace{flex:1;min-height:0}.playground.is-expanded .console-output{flex:none}.editor-loading{min-height:140px;color:var(--muted);direction:rtl;justify-content:center;align-items:center;gap:15px;font-size:12px;display:flex}.loading-bars{align-items:center;gap:3px;height:24px;display:flex}.loading-bars i{background:var(--accent);width:3px;height:14px;animation:.9s ease-in-out infinite alternate editor-loading}.loading-bars i:nth-child(2){animation-delay:.2s}.loading-bars i:nth-child(3){animation-delay:.4s}@keyframes editor-loading{to{opacity:.4;transform:scaleY(.35)}}.prose .lesson-hints,.prose .file-explanation{border:0;border-inline-start:2px solid var(--line);background:0 0;border-radius:0;margin:10px 0;padding:0 16px}.prose .lesson-hints summary,.file-explanation summary{color:var(--accent);padding:10px 0;font-size:13px;font-weight:600}.prose .lesson-hints p,.prose .file-explanation p{margin:0;padding:0 0 12px;font-size:14px;line-height:2}.prose .callout{border:0;border-inline-start:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 4%, transparent);border-radius:0;margin:24px 0;padding:16px 20px}.prose .callout>strong{align-items:center;gap:10px;display:flex}.callout>strong svg{flex:none;width:18px;height:18px}.prose .callout p{margin:8px 0 0;font-size:14px;line-height:2.1}.article-layout{grid-template-columns:minmax(220px,260px) minmax(0,850px);gap:36px}.toc{top:calc(var(--site-header-height,80px) + 20px);max-height:calc(100dvh - var(--site-header-height,80px) - 40px);overflow:auto}.toc a{border-inline-start:2px solid #0000;padding:7px 12px;font-size:13px;line-height:1.85;display:block}.toc a[aria-current=location]{color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, transparent);border-color:var(--accent)}@media (max-width:1050px){.article-layout{grid-template-columns:210px minmax(0,1fr);gap:24px}.editor-layout{grid-template-columns:1fr}.playground .file-tree{white-space:nowrap;border:0;border-bottom:1px solid var(--line);gap:4px;max-height:none;display:flex;overflow-x:auto}.file-tree>.tiny{display:none}.playground .file-tree button{flex:none;width:auto}}@media (max-width:760px){.article-layout{display:block}.toc{max-height:250px;margin-bottom:28px;position:static}.playground .workspace,.playground .workspace[data-panels]{flex-direction:column;display:flex}.playground .workspace-splitter{display:none}.playground .workspace-preview{border-top:1px solid var(--line)}.playground-toolbar>.lab-file-label{width:100%}.playground.is-expanded{border-radius:0;inset:0}.playground-toolbar>div{justify-content:flex-start;width:100%}.code-toolbar{flex-wrap:nowrap}.code-toolbar>div{flex:none}.code-edit-cta button{padding:12px;font-size:14px}}@media (prefers-reduced-motion:reduce){.loading-bars i{animation:none}.code-edit-cta button{transition:none}}.article-layout>.toc{scrollbar-width:thin;background:0 0;border:0;border-radius:0;padding:0}.toc summary{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:13px;list-style:none;display:flex}.toc summary::-webkit-details-marker{display:none}.toc summary svg{flex:0 0 16px;width:16px;height:16px;transition:transform .2s}.toc details:not([open]) summary svg{transform:rotate(90deg)}.toc nav{padding-top:8px}.toc ul{margin:0;padding:0}.toc li{margin:0}.article-layout .toc a{background:0 0;border:0;padding:9px 0;font-size:13px;line-height:1.8}.article-layout .toc a[aria-current=location]{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:5px;font-weight:650}.preview-caption{color:var(--muted);align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.preview-caption svg{width:16px;height:16px}.prose section[id]{scroll-margin-top:calc(var(--site-header-height,80px) + 24px)}.playground .preview-panel-body,.playground .workspace-preview iframe,.playground .preview-empty{height:var(--preview-height,280px)}.playground .console-output{height:var(--console-height,120px);resize:none;max-height:500px}.playground.is-embedded .workspace{flex-direction:column;display:flex}.playground.is-embedded .workspace-preview{border-top:1px solid var(--line)}.article-engagement{border-top:1px solid var(--line);align-items:center;gap:14px;margin-top:36px;padding-top:24px;font-size:12px;display:flex}.article-engagement button{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 13px var(--font);border-radius:8px;align-items:center;gap:10px;min-height:44px;padding:9px 14px;display:flex}.article-engagement button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.article-engagement button:disabled{opacity:.5}.article-engagement svg{width:18px;height:18px}.article-engagement>[role=status]{color:var(--muted)}.playground.is-expanded>.workspace{flex:none;min-height:auto}.playground.is-expanded>.workspace>.lab-panel{flex-shrink:0}.playground.is-expanded>.playground-toolbar{z-index:2;flex-shrink:0;position:sticky;top:0}.code-editor .cm-editor.cm-focused,.code-editor .cm-content:focus-visible{box-shadow:none;outline:none!important}.playground .panel-header{background:var(--paper);border-bottom:1px solid var(--line);align-items:stretch;min-height:42px;display:flex}.playground .panel-header>.panel-heading{border:0;flex-direction:row;flex:1;height:auto;min-height:42px;padding:8px 12px}.playground .panel-header .panel-title{writing-mode:initial;flex:1}.panel-chevron{transition:transform .18s;width:14px!important;height:14px!important}.panel-heading[aria-expanded=false] .panel-chevron{transform:rotate(90deg)}.panel-header-actions{align-items:center;padding-inline:6px;display:flex}.playground .panel-header-actions button{border:0;place-items:center;padding:8px;display:grid}.playground[data-layout=stacked] .workspace{flex-direction:column;display:flex}.playground[data-layout=stacked] .workspace>.lab-panel{flex-shrink:0}.playground[data-layout=stacked] .workspace-preview{border-top:1px solid var(--line)}.playground[data-layout=split] .workspace[data-panels]{grid-template-columns:minmax(0, var(--code-width)) 8px minmax(0, 1fr)}.playground[data-layout=split] .workspace[data-panels=code-],.playground[data-layout=split] .workspace[data-panels=-preview],.playground[data-layout=split] .workspace[data-panels=\-]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.console-output .status,.console-output .done{font-family:var(--font);text-align:right;color:var(--muted);direction:rtl;font-size:11px}@media (prefers-reduced-motion:reduce){.panel-chevron{transition:none}}.panel-toggle-glyph{flex:0 0 16px;width:16px;height:16px;transition:transform .24s;display:block;position:relative}.panel-toggle-glyph i,.panel-toggle-glyph b{background:currentColor;border-radius:2px;height:1.5px;display:block;position:absolute;inset:7px 2px}.panel-toggle-glyph b{transition:transform .24s,opacity .18s;transform:rotate(90deg)}.panel-heading[aria-expanded=true] .panel-toggle-glyph{transform:rotate(180deg)}.panel-heading[aria-expanded=true] .panel-toggle-glyph b{opacity:0;transform:rotate(0)}.playground .editor-layout{display:block}.playground .project-files .panel-header{border-bottom:0}.playground .project-files .panel-heading{min-height:36px;color:var(--muted);padding-block:4px;font-size:11px}.playground .project-files .file-tree{border:0;border-bottom:1px solid var(--line);gap:3px;max-height:120px;padding:4px 6px;display:flex;overflow:auto}.playground .project-files .file-tree button{white-space:nowrap;flex:none;width:auto;padding:5px 10px}.playground .editor-frame{border-top:1px solid var(--line)}@media (prefers-reduced-motion:reduce){.panel-toggle-glyph,.panel-toggle-glyph b{transition:none}}.playground .panel-header{position:relative}.playground .panel-header>.panel-heading{padding-inline-end:44px;position:relative}.playground .panel-toggle-glyph{inset-inline-end:12px;position:absolute;top:calc(50% - 8px)}.playground .panel-header-actions{inset-inline-end:38px;z-index:1;padding:0;position:absolute;top:3px}.playground .panel-header:has(.panel-header-actions)>.panel-heading{padding-inline-end:80px}
