@import"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.11.1/build/styles/github.min.css";@font-face{font-family:Perfektta;src:url(/fonts/Perfektta-SemiBold-2026.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Work Sans;src:url(/fonts/WorkSans-Variable-2026.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Work Sans;src:url(/fonts/WorkSans-Italic-Variable-2026.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:Azeret Mono;src:url(/fonts/AzeretMono-Variable-2026.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{color-scheme:light;--font-display: "Perfektta", "Work Sans", system-ui, sans-serif;--font-sans: "Work Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Azeret Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--dg-fuchsia: #e042ff;--dg-brass: #f7f300;--dg-off-white: #fcfaf8;--dg-ink: #1d1d1d;--surface-canvas: #fcfaf8;--surface-default: #f7f4f1;--surface-raised: #f2efed;--surface-overlay: #ffffff;--surface-card: #ffffff;--surface-subtle: #f2efed;--surface-inverse: #0a0a0a;--surface-glass: rgba(10, 10, 10, .04);--surface-glass-hover: rgba(10, 10, 10, .08);--surface-selected: rgba(224, 66, 255, .1);--text-primary: #1d1d1d;--text-secondary: #242424;--text-tertiary: #5f5e5e;--text-link: #0172c4;--text-link-on-tint: #0169b6;--text-on-accent: #1d1d1d;--text-inverse: #fcfaf8;--text-success: #3b7815;--text-error: #b43f36;--border-subtle: #dcd8d5;--border-default: #beb9b6;--border-hover: #5f5e5e;--accent: #e042ff;--accent-hover: #e358fe;--accent-active: #d03fed;--accent-text: var(--text-primary);--accent-ring: #c232e0;--focus: #e042ff;--focus-edge: #1d1d1d;--status-success: #5bba21;--status-error: #db292d;--ink-brass: #6b6900;--code-bg: #f2efed;--code-fg: #242424;--code-comment: #6e6b69;--code-keyword: #6a3bd6;--code-string: #3b7815;--code-number: #a04e00;--code-fn: #0169b6;--code-prop: #6b6900;--radius-xs: 4px;--radius-sm: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--shadow-overlay: 0 24px 64px rgba(29, 29, 29, .18)}.is-dark{color-scheme:dark;--surface-canvas: #0a0a0a;--surface-default: #141414;--surface-raised: #1d1d1d;--surface-overlay: #242424;--surface-card: #141414;--surface-subtle: #242424;--surface-inverse: #fcfaf8;--surface-glass: rgba(255, 255, 255, .05);--surface-glass-hover: rgba(255, 255, 255, .1);--surface-selected: rgba(255, 255, 255, .1);--text-primary: #fcfaf8;--text-secondary: #cccccc;--text-tertiary: #989898;--text-link: #00b2ff;--text-link-on-tint: #00b2ff;--text-inverse: #1d1d1d;--text-success: #5bba21;--text-error: #ef585a;--border-subtle: #242424;--border-default: #2d2d2d;--border-hover: #5f5e5e;--accent-text: #e042ff;--accent-ring: #e042ff;--focus-edge: transparent;--ink-brass: #f7f300;--code-bg: #141414;--code-fg: #cccccc;--code-comment: #858585;--code-keyword: #a26ffd;--code-string: #86eb47;--code-number: #fa8100;--code-fn: #00b2ff;--code-prop: #f7f300;--shadow-overlay: 0 24px 64px rgba(0, 0, 0, .64)}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface-canvas);color:var(--text-secondary);font-family:var(--font-sans);font-size:16px;line-height:1.5;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}::selection{background:#e042ff52;color:var(--text-primary)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-family:var(--font-sans);font-weight:500;letter-spacing:-.02em;line-height:1.2;text-wrap:balance}h1{font-family:var(--font-display);font-weight:600;font-size:28px;line-height:1.05;letter-spacing:-.03em;margin:16px 0}h2{font-size:22px}h3{font-size:18px}h4,h5,h6{font-size:15px;font-weight:600}strong,b{color:var(--text-primary);font-weight:600}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 2px var(--surface-canvas),0 0 0 5px var(--focus-edge)!important}button{appearance:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 20px;border:0;border-radius:var(--radius-full);background:var(--surface-glass);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font-family:var(--font-mono);font-weight:500;font-size:14px;letter-spacing:.03em;line-height:1.3;transition:background-color .16s ease,box-shadow .16s ease,color .16s ease}button:hover{background:var(--surface-glass-hover);box-shadow:inset 0 0 0 1px var(--border-hover)}.workshop-cta,.workshop-continue__next{background:var(--accent);box-shadow:none;color:var(--text-on-accent)}.workshop-cta:hover,.workshop-continue__next:hover{background:var(--accent-hover);box-shadow:none}.workshop-cta:active,.workshop-continue__next:active{background:var(--accent-active)}app-root{display:contents}footer{z-index:5}.workshop-shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start}.workshop-shell__content{min-width:0}.workshop-shell__sidebar{position:sticky;top:24px;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:24px 20px 20px;background:var(--surface-card)}.workshop-shell__sidebar h2{margin:0;font-size:17px;font-weight:600;line-height:1.3;letter-spacing:-.01em;word-break:break-word}.workshop-shell__sidebar h2 a{color:var(--text-primary);text-decoration:none}.workshop-shell__sidebar h2+p{margin:12px 0 20px;font-size:15px;color:var(--text-secondary)}.workshop-shell__nav{list-style:none;padding:0;margin:0}.workshop-shell__nav li{border-bottom:1px solid var(--border-subtle)}.workshop-shell__nav li:before,.workshop-shell__nav li::marker{content:none!important}.workshop-shell__nav li:last-child{border-bottom:none}.workshop-shell__nav a{display:flex;align-items:flex-start;gap:10px;padding:9px 4px;font-size:15px;line-height:1.35;color:var(--text-secondary);text-decoration:none}.workshop-shell__nav a:hover{color:var(--text-primary);text-decoration:none}.workshop-shell__nav a.is-active{font-weight:600;color:var(--accent-text)}.workshop-shell__status{color:var(--border-hover);font-size:1.05em;margin-top:1px;flex-shrink:0}.workshop-shell__nav a.is-active .workshop-shell__status{color:var(--accent)}.workshop-shell__nav a .workshop-shell__status--complete,.workshop-shell__nav a.is-active .workshop-shell__status--complete{display:none;color:var(--text-success)}.workshop-shell__nav a.is-section-complete .workshop-shell__status--complete{display:inline-block}.workshop-shell__nav a.is-section-complete .workshop-shell__status--incomplete{display:none}.workshop-shell__optional{flex-shrink:0;display:inline-flex;align-items:center;height:20px;margin-left:6px;padding:0 8px;border-radius:var(--radius-full);background:var(--surface-glass);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-secondary);font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.workshop-progress{margin-top:20px;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--text-tertiary)}.workshop-progress-bar{width:100%;height:6px;background:var(--border-default);border-radius:var(--radius-full);overflow:hidden;margin-top:8px}.workshop-progress-fill{height:100%;border-radius:inherit;background:var(--text-primary);transition:width .3s ease}.workshop-card .workshop-progress{margin-top:12px}.workshop-shell__reset{margin-top:12px;min-height:32px;padding:0 12px;font-size:12px;background:transparent;box-shadow:none;color:var(--text-secondary)}.workshop-shell__reset:hover{color:var(--text-primary);background:var(--surface-glass);box-shadow:none}.workshop-step{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:28px;margin:0 0 24px;background:var(--surface-card);min-width:0;max-width:100%;overflow:hidden}.workshop-step__heading{margin:0 0 20px;display:flex;align-items:center;gap:12px}.workshop-step__body{min-width:0;text-align:left;font-size:16px;line-height:1.6;color:var(--text-secondary)}.workshop-step__body :where(p){margin:0 0 14px}.workshop-step__body :where(ol,ul){margin:0 0 14px;padding-left:22px}.workshop-step__body :where(li+li){margin-top:6px}.workshop-step__body>:last-child>:last-child{margin-bottom:0}.workshop-shell__sidebar,.workshop-step,.workshop-quiz,.workshop-pause,.workshop-card{--text-link: var(--text-link-on-tint)}.workshop-step__body a,main :is(p,li,td,blockquote) a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.workshop-step__body :where(pre,pre code,code){text-align:left}.workshop-step__body :where(pre){overflow-x:auto;max-width:100%;margin:0 0 14px}.workshop-step__body :where(h3){margin:24px 0 12px}code,kbd,pre{font-family:var(--font-mono);letter-spacing:0}:not(pre)>code{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);padding:2px 6px;border-radius:var(--radius-xs);font-size:.86em}pre{font-size:13px;line-height:1.6}.workshop-step__body :where(pre code.hljs),pre code.hljs{display:block;padding:16px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.hljs{color:var(--code-fg);background:var(--code-bg)}.hljs-comment,.hljs-code,.hljs-formula,.hljs-quote{color:var(--code-comment);font-style:normal}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_,.hljs-selector-tag,.hljs-name{color:var(--code-keyword)}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string,.hljs-addition{color:var(--code-string)}.hljs-number,.hljs-literal,.hljs-symbol,.hljs-built_in{color:var(--code-number)}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_,.hljs-section{color:var(--code-fn)}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-meta,.hljs-operator,.hljs-variable,.hljs-params,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo{color:var(--code-prop)}.hljs-subst,.hljs-emphasis,.hljs-strong,.hljs-punctuation,.hljs-tag{color:var(--code-fg)}.hljs-bullet{color:var(--code-number)}.hljs-link{color:var(--code-fn)}.hljs-addition{background-color:color-mix(in srgb,var(--status-success) 14%,transparent)}.hljs-deletion{color:var(--text-error);background-color:color-mix(in srgb,var(--status-error) 12%,transparent)}.workshop-quiz{display:grid;gap:14px;margin-top:24px;padding:20px;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card)}.workshop-quiz__question{position:relative;display:block;margin:0;padding-left:32px;color:var(--text-primary);font-weight:500;font-size:16px;line-height:1.45}.workshop-quiz__question>i{position:absolute;left:0;top:3px;font-size:18px;color:var(--text-tertiary)}.workshop-quiz__options{display:grid;gap:10px}.workshop-quiz__option{justify-content:flex-start;align-items:flex-start;gap:12px;width:100%;min-height:48px;padding:12px 16px;text-align:left;border-radius:var(--radius-sm);background:var(--surface-default);box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;font-weight:400;letter-spacing:-.01em;line-height:1.45}.workshop-quiz__option:hover{background:var(--surface-default);box-shadow:inset 0 0 0 1px var(--border-hover)}.workshop-quiz__mark{display:grid;place-items:center;flex:none;width:20px;height:20px;margin-top:1px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--border-hover);font-size:11px}.workshop-quiz__mark i{display:none}.workshop-quiz__option.is-correct{background:color-mix(in srgb,var(--status-success) 10%,var(--surface-default));box-shadow:inset 0 0 0 1.5px var(--text-success)}.workshop-quiz__option.is-correct .workshop-quiz__mark{background:var(--status-success);box-shadow:none;color:var(--dg-ink)}.workshop-quiz__option.is-incorrect{background:color-mix(in srgb,var(--status-error) 9%,var(--surface-default));box-shadow:inset 0 0 0 1.5px var(--text-error)}.workshop-quiz__option.is-incorrect .workshop-quiz__mark{background:var(--status-error);box-shadow:none;color:var(--dg-off-white)}.workshop-quiz__option.is-correct .workshop-quiz__mark-correct,.workshop-quiz__option.is-incorrect .workshop-quiz__mark-incorrect{display:block}.workshop-quiz__feedback{padding:12px 14px;border-radius:var(--radius-sm);color:var(--text-primary);font-size:15px;line-height:1.5}.workshop-quiz__feedback>strong{margin-right:.35em}.workshop-quiz__feedback.is-correct{background:color-mix(in srgb,var(--status-success) 10%,transparent)}.workshop-quiz__feedback.is-correct strong{color:var(--text-success)}.workshop-quiz__feedback.is-incorrect{background:color-mix(in srgb,var(--status-error) 9%,transparent)}.workshop-quiz__feedback.is-incorrect strong{color:var(--text-error)}.workshop-pause{position:relative;margin-top:24px;padding:18px 20px 18px 24px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--ink-brass) 40%,transparent);background:color-mix(in srgb,var(--dg-brass) 9%,var(--surface-card));color:var(--text-primary);font-size:15px;line-height:1.5;overflow:hidden}.workshop-pause:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ink-brass)}.workshop-pause__label{display:block;margin-bottom:6px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-brass)}.workshop-diagram{margin:20px 0}.workshop-diagram img{display:block;max-width:100%;height:auto}.workshop-diagram img.workshop-diagram__dark,.is-dark .workshop-diagram img.workshop-diagram__light{display:none}.is-dark .workshop-diagram img.workshop-diagram__dark{display:block}.workshop-continue{margin-top:8px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.workshop-continue>div{max-width:100%;min-width:0}.workshop-continue button{min-height:44px;max-width:100%;padding:0 18px;font-size:13px}.workshop-continue__prev{background:transparent;box-shadow:inset 0 0 0 1px var(--border-hover)}.workshop-continue__prev:hover{background:var(--surface-glass);box-shadow:inset 0 0 0 1px var(--text-primary)}.workshop-continue button .workshop-continue__check{display:none}.workshop-continue button.is-complete .workshop-continue__check,.workshop-continue button .workshop-continue__arrow{display:inline-block}.workshop-continue button .workshop-continue__flag,.workshop-continue button.is-final .workshop-continue__arrow{display:none}.workshop-continue button.is-final .workshop-continue__flag{display:inline-block}.workshop-continue__prev-link,.workshop-continue__prev-link:hover{text-decoration:none}.workshop-continue button code{background:transparent;border-color:currentColor;color:inherit}.workshop-continue__prev-link[hidden]{display:none}.workshop-card{display:block;margin-bottom:16px;padding:24px;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--surface-card);color:var(--text-secondary);text-decoration:none;transition:border-color .16s ease,background-color .16s ease}.workshop-card:hover{border-color:var(--border-hover);text-decoration:none}.workshop-card :is(h2,h3){margin:0 0 10px;font-size:22px}.workshop-card p{margin:0 0 10px}.workshop-card small{font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;color:var(--text-tertiary)}@media(max-width:860px){.workshop-shell{grid-template-columns:minmax(0,1fr)}.workshop-shell__sidebar{position:static}}@media(max-width:640px){.workshop-step{padding:20px 16px}.workshop-quiz{padding:16px}.workshop-continue>div{width:100%}.workshop-continue button{width:100%;min-height:48px;padding:10px 20px;text-align:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
