@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/jetbrains-mono-latin-300-normal.DuMDZskh.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-300-normal.BYcAiAh2.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff) format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/unbounded-latin-300-normal.BdeIjcOy.woff2) format("woff2"),url(/_astro/unbounded-latin-300-normal.BtI4HK4V.woff) format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/unbounded-latin-400-normal.DxT99aXF.woff2) format("woff2"),url(/_astro/unbounded-latin-400-normal.CiSqyYx3.woff) format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/unbounded-latin-700-normal.CaoNriVp.woff2) format("woff2"),url(/_astro/unbounded-latin-700-normal.CZtriu5h.woff) format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/unbounded-latin-900-normal.DrIEwloP.woff2) format("woff2"),url(/_astro/unbounded-latin-900-normal.4cp7xOrc.woff) format("woff")}.training-index .pillar-scope{margin:36px 0 12px}.training-index .pillar-scope h2{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;font-weight:600;color:var(--mute-2);letter-spacing:.14em;text-transform:uppercase;margin:28px 0 10px;padding:0;border:0}.training-index .pillar-scope h2:first-child{margin-top:0}.training-index .pillar-scope p{margin:0 0 14px;color:var(--mute);font-size:15px;line-height:1.65}.training-index .pillar-scope p code{font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;color:var(--ink);background:color-mix(in oklch,var(--accent) 6%,transparent);padding:1px 6px;border-radius:2px}.training-index .pillar-scope p em{font-style:italic;color:var(--ink)}.training-index .pillar-scope a{color:var(--ink);text-decoration:none;border-bottom:1px dotted color-mix(in oklch,var(--accent) 40%,transparent)}.training-index .pillar-scope a:hover{color:var(--accent);border-bottom-color:var(--accent)}.training-index article{margin-top:8px}.training-index ol.course-cards{list-style:none;padding:0;margin:32px 0 48px;display:flex;flex-direction:column;gap:14px}.training-index ol.course-cards>li{margin:0}.training-index .course-card{display:block;padding:26px 28px;border:1px solid var(--line);border-radius:var(--cc-radius, 6px);background:var(--cc-bg, color-mix(in oklch, var(--ink) 2.5%, var(--bg)));color:inherit;text-decoration:none!important;transition:border-color .22s var(--ease-out-quart, ease-out),background .22s var(--ease-out-quart, ease-out),transform .22s var(--ease-out-quart, ease-out)}.training-index a.course-card.is-live:hover,.training-index a.course-card.is-live:focus-visible{border-color:color-mix(in oklch,var(--accent) 55%,transparent);background:color-mix(in oklch,var(--accent) 5%,var(--bg));transform:translateY(-1px);outline:none}.training-index a.course-card.is-live:hover .cc-title,.training-index a.course-card.is-live:focus-visible .cc-title{color:var(--accent)}.training-index a.course-card.is-live:hover .cc-arrow{color:var(--accent);transform:translate(6px)}.training-index .course-card.is-soon{cursor:default;background:transparent;border-style:dashed}.training-index .cc-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.training-index .cc-idx{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.1em;color:var(--mute-2)}.training-index .cc-meta{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.06em;color:var(--mute-2);font-variant-numeric:tabular-nums}.training-index .cc-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border:1px solid var(--line);border-radius:var(--cc-badge-radius, 999px);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border-color:color-mix(in oklch,var(--accent) 40%,transparent)}.training-index .cc-badge[data-state=wip]{color:var(--pulse-dev, var(--accent));border-color:color-mix(in oklch,var(--pulse-dev, var(--accent)) 45%,transparent)}.training-index .cc-badge[data-state=soon]{color:var(--mute-2);border-color:var(--line)}.training-index .cc-badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.9}.training-index .cc-title{font-family:var(--cc-title-font, "JetBrains Mono", ui-monospace, monospace);font-weight:var(--cc-title-weight, 700);font-style:var(--cc-title-style, normal);font-size:clamp(22px,3.2vw,32px);line-height:1.1;letter-spacing:-.02em;margin:0 0 12px;padding:0;border:0;color:var(--ink);text-transform:none;display:flex;align-items:baseline;gap:10px;transition:color .18s ease}.training-index .course-card.is-soon .cc-title{color:var(--mute)}.training-index .cc-arrow{color:var(--mute-2);font-size:var(--cc-arrow-size, 18px);transition:color .18s ease,transform .22s var(--ease-out-quart, ease-out)}.training-index .cc-kicker{color:var(--mute);font-size:14px;line-height:1.6;margin:0 0 18px;max-width:62ch}.training-index .course-card.is-soon .cc-kicker{color:var(--mute-2)}.training-index .cc-stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.04em;color:var(--mute)}.training-index .cc-stats .cc-sep{color:var(--mute-2)}.training-index .training-tagline{margin:4px 0 18px;color:var(--mute);font-size:14px;line-height:1.7;font-style:italic;letter-spacing:0}@media(max-width:640px){.training-index .course-card{padding:22px 20px}.training-index .cc-stats{gap:6px;font-size:10px}}.training-index .writing{margin-top:56px;padding-top:28px;border-top:1px solid var(--line)}.training-index .writing h2{font-family:var(--writing-h2-font, "JetBrains Mono", ui-monospace, monospace);font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin:0 0 18px;padding-top:0;border-top:0}.training-index .writing-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.training-index .writing-list li{border-bottom:1px solid var(--line)}.training-index .writing-row{display:grid;grid-template-columns:1fr 80px;gap:12px;padding:14px 0;align-items:baseline;text-decoration:none!important;color:inherit;transition:color .16s ease}.training-index .writing-row:hover .w-title{color:var(--accent)}.training-index .writing-row .w-title{grid-column:1;font-family:var(--w-title-font, inherit);font-style:var(--w-title-style, normal);font-weight:var(--w-title-weight, 500);letter-spacing:var(--w-title-tracking, normal);font-size:var(--w-title-size, 18px);line-height:1.3;color:var(--ink);transition:color .16s ease}.training-index .writing-row .w-kicker{grid-column:1;grid-row:2;color:var(--mute);font-size:14px;margin-top:4px}.training-index .writing-row .w-date{grid-column:2;grid-row:1;color:var(--mute-2);font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.04em;text-align:right;font-variant-numeric:tabular-nums}.training-index .writing-see-all{display:inline-block;margin-top:18px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px;color:var(--mute);text-decoration:none!important;letter-spacing:.04em;transition:color .16s ease}.training-index .writing-see-all:hover{color:var(--accent)}.training-index .writing-see-all span{display:inline-block;transition:transform .22s var(--ease-out-quart, ease-out)}.training-index .writing-see-all:hover span{transform:translate(4px)}.training-index .writing-list li,.training-index .writing{border-color:var(--writing-border-color, var(--line))}.training-index .writing{border-top-style:var(--writing-border-style, solid)}.training-index .writing-list li{border-bottom-style:var(--writing-border-style, solid)}body.ai-page{--bg: oklch(12% .012 60);--bg-2: oklch(17% .02 65);--ink: oklch(92% .02 75);--mute: oklch(64% .025 70);--mute-2: oklch(46% .022 60);--line: oklch(26% .018 60);--line-2: oklch(32% .02 60);--accent: oklch(78% .18 65);--pulse: oklch(74% .17 145);--pulse-dev: oklch(78% .14 75);--pad-x: 48px;--ease-out-quart: cubic-bezier(.22, 1, .36, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;position:relative}body.ai-page main{flex:1 0 auto}body.ai-page footer.site,body.ai-page .colophon{flex-shrink:0;position:relative;z-index:5}body.ai-page *{box-sizing:border-box}body.ai-page:before{content:"";position:fixed;inset:0;background:radial-gradient(60% 40% at 70% 20%,oklch(30% .05 60 / .28),transparent 70%),radial-gradient(50% 30% at 20% 80%,oklch(25% .04 50 / .32),transparent 70%);pointer-events:none;z-index:0}body.ai-page:after{content:"";position:fixed;inset:0;background-image:linear-gradient(90deg,oklch(100% 0 0 / .015) 1px,transparent 1px),linear-gradient(0deg,oklch(100% 0 0 / .015) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:0;mask-image:radial-gradient(ellipse at center,black 25%,transparent 85%)}body.ai-page a{color:inherit;text-decoration:none;transition:color .16s ease}body.ai-page a:hover{color:var(--accent)}body.ai-page ::selection{background:color-mix(in oklch,var(--accent) 35%,transparent);color:var(--bg)}body.ai-page :focus:not(:focus-visible){outline:none}body.ai-page :focus-visible{outline:1.5px solid var(--accent);outline-offset:3px;border-radius:1px}body.ai-page main.ai-doc{position:relative;z-index:5;width:100%;max-width:calc(820px + 2 * var(--pad-x));margin:0 auto;padding:96px var(--pad-x) 64px}body.ai-page main.ai-doc .doc-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:32px;gap:16px;flex-wrap:wrap}@media(max-width:560px){body.ai-page main.ai-doc .doc-head{flex-direction:column;align-items:flex-start;gap:10px}body.ai-page main.ai-doc .doc-head .meta{line-height:1.9}body.ai-page main.ai-doc .doc-head .meta .dot{margin:0 4px}}body.ai-page main.ai-doc .doc-head .back{color:var(--mute-2)}body.ai-page main.ai-doc .doc-head .back:hover{color:var(--accent)}body.ai-page main.ai-doc .doc-head .meta{color:var(--mute-2);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-variant-numeric:tabular-nums}body.ai-page main.ai-doc .doc-head .meta .dot{color:var(--line-2);margin:0 6px}body.ai-page main.ai-doc .doc-head .meta .strong{color:var(--ink)}body.ai-page main.ai-doc .eyebrow{font-family:Unbounded,ui-sans-serif,system-ui,sans-serif;font-weight:300;font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--accent);margin:0 0 16px}body.ai-page main.ai-doc h1{font-family:Unbounded,ui-sans-serif,system-ui,sans-serif;font-weight:300;font-size:clamp(28px,4.2vw,44px);line-height:1.08;letter-spacing:-.02em;color:var(--ink);margin:0 0 12px}body.ai-page main.ai-doc.training-index h1{font-weight:700;font-size:clamp(40px,7vw,72px);line-height:.95;letter-spacing:-.04em}body.ai-page main.ai-doc.training-index h1:before{content:"/";color:var(--accent);font-weight:300;margin-right:.04em;opacity:.85}body.ai-page main.ai-doc .kicker{color:var(--mute);margin:0 0 40px;padding-bottom:24px;border-bottom:1px solid var(--line);line-height:1.75;font-size:14px}body.ai-page main.ai-doc:not(.training-index) article{color:var(--ink);font-size:14px;line-height:1.8}body.ai-page main.ai-doc:not(.training-index) article p{margin:0 0 20px}body.ai-page main.ai-doc:not(.training-index) article p.tldr{margin:0 0 36px;padding:16px 18px;background:linear-gradient(180deg,color-mix(in oklch,var(--accent) 7%,var(--bg)),color-mix(in oklch,var(--accent) 4%,var(--bg)));border:1px solid color-mix(in oklch,var(--accent) 24%,var(--line));border-radius:4px;color:var(--mute);font-size:14px;line-height:1.7}body.ai-page main.ai-doc:not(.training-index) article p.tldr strong{display:block;color:var(--accent);font-family:JetBrains Mono,ui-monospace,monospace;font-weight:600;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;margin:0 0 6px}body.ai-page main.ai-doc:not(.training-index) article em{font-style:italic;color:var(--ink)}body.ai-page main.ai-doc:not(.training-index) article h2{color:var(--ink);font-family:JetBrains Mono,ui-monospace,monospace;font-weight:600;font-size:14px;letter-spacing:.14em;text-transform:uppercase;margin:44px 0 14px;padding-top:20px;border-top:1px solid var(--line)}body.ai-page main.ai-doc:not(.training-index) article h2:first-child{margin-top:0;padding-top:0;border-top:0}body.ai-page main.ai-doc:not(.training-index) article :not(pre)>code{background:color-mix(in oklch,var(--accent) 14%,var(--bg));color:var(--ink);padding:1px 6px;border-radius:3px;font-size:13px;border:1px solid color-mix(in oklch,var(--accent) 18%,transparent);overflow-wrap:anywhere}body.ai-page main.ai-doc:not(.training-index) article pre{margin:24px 0;padding:14px 16px;background:color-mix(in oklch,var(--ink) 6%,var(--bg));border:1px solid var(--line);border-radius:4px;overflow-x:auto;font-size:12.5px;line-height:1.6}body.ai-page main.ai-doc:not(.training-index) article pre code{background:transparent;padding:0;border:0;font-size:inherit;color:inherit;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}body.ai-page main.ai-doc:not(.training-index) article blockquote{margin:20px 0;padding:14px 18px;background:color-mix(in oklch,var(--accent) 5%,transparent);border:1px solid color-mix(in oklch,var(--accent) 18%,transparent);border-radius:3px;color:var(--mute);font-style:italic}body.ai-page main.ai-doc:not(.training-index) article a{text-decoration:underline;text-decoration-thickness:.5px;text-underline-offset:3px;text-decoration-color:color-mix(in oklch,var(--accent) 40%,transparent)}body.ai-page main.ai-doc:not(.training-index) article a:hover{color:var(--accent);text-decoration-color:currentColor}body.ai-page main.ai-doc:not(.training-index) article abbr{text-decoration-style:dotted;text-decoration-color:var(--mute-2);cursor:help}body.ai-page main.ai-doc .post-nav{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:14px}body.ai-page main.ai-doc .post-nav a{display:flex;flex-direction:column;gap:4px;color:inherit;min-width:0}body.ai-page main.ai-doc .post-nav a.next{align-items:flex-end;text-align:right}body.ai-page main.ai-doc .post-nav .dir{color:var(--mute-2);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-variant-numeric:tabular-nums}body.ai-page main.ai-doc .post-nav .title{color:var(--ink)}body.ai-page main.ai-doc .post-nav a:hover .title{color:var(--accent)}body.ai-page main.course article ul.how{list-style:none;padding:0;margin:0 0 40px;color:var(--ink);line-height:1.8}body.ai-page main.course article ul.how li{position:relative;padding:4px 0 4px 18px}body.ai-page main.course article ul.how li:before{content:"·";position:absolute;left:4px;color:var(--accent)}body.ai-page main.course article ol.lesson-list{list-style:none;padding:0;margin:0 0 32px;border-top:1px solid var(--line)}body.ai-page main.course article ol.lesson-list .lesson-item{border-bottom:1px solid var(--line)}body.ai-page main.course article ol.lesson-list .lesson-row{display:grid;grid-template-columns:44px 1fr 60px 72px;gap:18px;align-items:start;padding:20px 0;color:inherit;text-decoration:none;position:relative;transition:background .18s var(--ease-out-quart),padding-left .22s var(--ease-out-quart)}body.ai-page main.course article ol.lesson-list.no-badges .lesson-row{grid-template-columns:44px 1fr 60px}body.ai-page main.course article ol.lesson-list.no-badges .lesson-row .mins{padding-right:28px}body.ai-page main.course article a.lesson-row:after{content:"→";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:color-mix(in oklch,var(--accent) 45%,transparent);font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px;opacity:0;transition:opacity .2s var(--ease-out-quart),transform .22s var(--ease-out-quart),color .2s var(--ease-out-quart)}body.ai-page main.course article a.lesson-row:hover{background:color-mix(in oklch,var(--accent) 5%,transparent);padding-left:8px}body.ai-page main.course article a.lesson-row:hover:after{opacity:1;color:var(--accent);transform:translate(4px,-50%)}body.ai-page main.course article a.lesson-row:hover .title{color:var(--accent)}body.ai-page main.course article a.lesson-row:hover .badge{border-color:var(--accent);color:var(--accent)}body.ai-page main.course article .lesson-row .num{color:var(--mute-2);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.12em;padding:6px 0 0 8px;position:relative}body.ai-page main.course article a.lesson-row:hover .num{color:var(--accent)}body.ai-page main.course article .lesson-row .body{display:flex;flex-direction:column;gap:6px;min-width:0}body.ai-page main.course article .lesson-row .title{color:var(--ink);font-size:18px;font-weight:500;line-height:1.3;letter-spacing:.02em;transition:color .16s var(--ease-out-quart)}body.ai-page main.course article .lesson-row .desc{color:var(--mute);font-size:14px;line-height:1.65;max-width:58ch}body.ai-page main.course article .lesson-row .mins{color:var(--mute-2);font-variant-numeric:tabular-nums;font-size:11px;text-align:right;padding-top:4px}body.ai-page main.course article .lesson-row .badge{justify-self:end;padding:3px 10px;border:1px solid var(--line);border-radius:999px;color:var(--mute-2);font-size:10px;letter-spacing:.1em;text-transform:uppercase;line-height:1.6;height:fit-content;margin-top:2px;transition:color .16s var(--ease-out-quart),border-color .16s var(--ease-out-quart)}body.ai-page main.course article .status-live .lesson-row .badge{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 45%,transparent)}body.ai-page main.course article .status-draft .lesson-row .badge{color:var(--pulse-dev);border-color:color-mix(in oklch,var(--pulse-dev) 40%,transparent)}body.ai-page main.course article .status-planned .lesson-row{cursor:default}body.ai-page main.course article .status-planned .lesson-row .title{color:var(--mute)}@media(max-width:560px){body.ai-page main.course article .lesson-row{grid-template-columns:32px 1fr 72px;gap:14px}body.ai-page main.course article .lesson-row .mins{display:none}}body.ai-page main.course .course-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin:-28px 0 40px;padding:12px 14px;border:1px solid color-mix(in oklch,var(--accent) 25%,var(--line));border-radius:3px;background:color-mix(in oklch,var(--accent) 3%,transparent);font-size:11px;letter-spacing:.04em;color:var(--mute)}body.ai-page main.course .course-meta .cm-line{display:inline-flex;gap:8px;align-items:baseline}body.ai-page main.course .course-meta .cm-label{color:var(--mute-2);text-transform:uppercase;letter-spacing:.1em;font-size:10px}body.ai-page main.course .course-meta .cm-val{color:var(--ink);font-variant-numeric:tabular-nums}body.ai-page main.course .course-meta .cm-warn{width:100%;color:var(--mute-2);font-size:11px;line-height:1.55;letter-spacing:0;margin-top:2px}body.ai-page footer.site{text-align:center;padding:20px var(--pad-x) 10px;color:var(--mute);font-variant-numeric:tabular-nums}body.ai-page footer.site .dot{color:var(--mute-2);margin:0 6px}body.ai-page .colophon{text-align:center;color:var(--mute-2);font-size:10px;letter-spacing:.04em;padding:0 var(--pad-x) 16px}body.ai-page .colophon .dot{margin:0 6px}@media(max-width:720px){body.ai-page{--pad-x: 22px}body.ai-page main.ai-doc{padding:80px var(--pad-x) 48px}body.ai-page main.ai-doc h1{font-size:26px}body.ai-page footer.site{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;line-height:1.4;padding-bottom:14px}body.ai-page footer.site .dot{display:none}body.ai-page .colophon{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px}body.ai-page .colophon .dot{display:none}}@media(max-width:560px){body.ai-page main.ai-doc .post-nav{grid-template-columns:1fr}body.ai-page main.ai-doc .post-nav a.next{align-items:flex-start;text-align:left}}@media(prefers-reduced-motion:reduce){body.ai-page a,body.ai-page main.ai-doc .post-nav a .title{transition:none}}body.ai-page main.training-index{--cc-title-font: "Unbounded", ui-sans-serif, system-ui, sans-serif}body.ai-page main.training-index .cc-title{font-size:clamp(24px,3.4vw,34px);line-height:1.08;gap:12px}
