@charset "UTF-8";@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url("./media/figtree-latin-ext-wght-normal-O22BDGD7.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url("./media/figtree-latin-wght-normal-SOXVSX3R.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-cyrillic-ext-wght-normal-BUWC6ZS3.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-cyrillic-wght-normal-ENSFVLK4.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-greek-wght-normal-Y3BRZMJV.woff2") format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-vietnamese-wght-normal-SP6EBKAH.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-latin-ext-wght-normal-TSLVDSQR.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./media/jetbrains-mono-latin-wght-normal-VBS632QH.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url("./media/source-serif-4-cyrillic-ext-wght-normal-V7ZTFCOE.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url("./media/source-serif-4-cyrillic-wght-normal-L7ELDB75.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url("./media/source-serif-4-greek-wght-normal-XBPEZBN4.woff2") format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url("./media/source-serif-4-vietnamese-wght-normal-GJTTNSIH.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url("./media/source-serif-4-latin-ext-wght-normal-5KAOUPZ6.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url("./media/source-serif-4-latin-wght-normal-EUO3YR6J.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-primary: #1e7535;--color-primary-hover: #175c29;--color-on-primary: #ffffff;--color-primary-soft: #e8f5ec;--color-accent: #1a5fb8;--color-bg: #ffffff;--color-surface: #f6f8fa;--color-surface-2: #eef1f4;--color-border: #e3e6ea;--color-text: #1a1d21;--color-text-muted: #5f6b7a;--color-prose: #333333;--color-header-bg: rgba(255, 255, 255, .88);--color-code-bg: #f6f8fa;--color-code-text: #24292f;--color-inline-code-bg: #eef1f4;--ide-bg: #ffffff;--ide-fg: #080808;--ide-panel: #f7f8fa;--ide-border: #ebecf0;--ide-gutter: #8c9096;--ide-caret-line: #f5f8fe;--ide-selection: #a6d2ff;--ide-tab-accent: #3574f0;--ide-run: #369650;--ide-keyword: #0033b3;--ide-string: #067d17;--ide-number: #1750eb;--ide-comment: #676b72;--ide-method: #00627a;--ide-annotation: #7a6a00;--ide-field: #871094;--ide-error: #c7222d;--color-note: #1a5fb8;--color-tip: #1e7535;--color-warning: #8a5800;--color-danger: #b3261e;--color-remember: #6b3fa0;--color-mark-bg: #fff1a8;--color-mark-text: #1a1d21;--color-correct: #1e7535;--color-wrong: #b3261e;--color-easy: #1e7535;--color-medium: #8a5800;--color-hard: #b3261e;--font-sans: "Figtree Variable", "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono Variable", "JetBrains Mono", "Fira Code", ui-monospace, Menlo, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-body: 1rem;--fs-h3: 1.17rem;--fs-h2: 1.75rem;--fs-h1: clamp(1.9rem, 4vw, 2.25rem);--lh-body: 1.6;--header-h: 60px;--techbar-h: 44px;--content-max: 820px;--page-max: 1360px;--sidebar-w: 240px;--toc-w: 200px;--gutter: 16px;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow: 0 4px 16px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 40px rgba(16, 24, 40, .14);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 72px;--transition: .16s ease;color-scheme:light}[data-theme=dark]{--color-primary: #3fb862;--color-primary-hover: #57c977;--color-primary-soft: #16301f;--color-on-primary: #0f1115;--color-accent: #5b9dff;--color-bg: #0f1115;--color-surface: #161a21;--color-surface-2: #1d222b;--color-border: #2a303b;--color-text: #e6e8eb;--color-text-muted: #9aa4b2;--color-prose: #d6dae0;--color-header-bg: rgba(15, 17, 21, .85);--color-code-bg: #161b22;--color-code-text: #e6edf3;--color-inline-code-bg: #222833;--color-note: #5b9dff;--color-tip: #3fb862;--color-warning: #e3a336;--color-danger: #ff6b5e;--color-remember: #b794f6;--color-mark-bg: #4d4100;--color-mark-text: #fff3c4;--color-correct: #3fb862;--color-wrong: #ff6b5e;--color-easy: #3fb862;--color-medium: #e3a336;--color-hard: #ff6b5e;--ide-bg: #1e1f22;--ide-fg: #bcbec4;--ide-panel: #2b2d30;--ide-border: #393b40;--ide-gutter: #6f737a;--ide-caret-line: #26282e;--ide-selection: #214283;--ide-tab-accent: #3574f0;--ide-run: #5fb865;--ide-keyword: #cf8e6d;--ide-string: #6aab73;--ide-number: #2aacb8;--ide-comment: #8f939a;--ide-method: #56a8f5;--ide-annotation: #b3ae60;--ide-field: #c77dbb;--ide-error: #f75464;--shadow: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .55);color-scheme:dark}[data-theme=sepia]{--color-primary: #8a5a1f;--color-primary-hover: #6f4716;--color-primary-soft: #efe2c8;--color-bg: #f8f1e3;--color-surface: #f1e7d3;--color-surface-2: #e9dcc3;--color-border: #ddcdae;--color-text: #3b2f1e;--color-text-muted: #77654a;--color-prose: #3b2f1e;--color-header-bg: rgba(248, 241, 227, .9);--color-code-bg: #f1e7d3;--color-code-text: #3b2f1e;--color-inline-code-bg: #eadcc0}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--techbar-h) + 16px)}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;transition:background var(--transition),color var(--transition)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}h1,h2,h3,h4{line-height:1.25;margin:0 0 var(--space-3)}button{font:inherit;color:inherit}code,pre,kbd,samp,textarea{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;left:8px;top:-48px;z-index:1000;padding:8px 14px;background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-sm)}.skip-link:focus{top:8px}.container{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}@media print{app-header,app-tech-bar,app-footer,.skip-link{display:none!important}body{background:#fff;color:#000}}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:var(--fs-sm);cursor:pointer;text-decoration:none!important;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-outline{background:transparent;border-color:var(--color-border);color:var(--color-text)}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);cursor:pointer}.icon-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.icon-btn svg{width:18px;height:18px}.card{display:block;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5);color:var(--color-text);text-decoration:none!important;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.card:hover{border-color:var(--color-primary);box-shadow:var(--shadow);transform:translateY(-2px)}.grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;background:var(--color-surface-2);color:var(--color-text-muted);white-space:nowrap}.badge.easy{color:var(--color-easy);background:color-mix(in srgb,var(--color-easy) 14%,transparent)}.badge.medium{color:var(--color-medium);background:color-mix(in srgb,var(--color-medium) 14%,transparent)}.badge.hard{color:var(--color-hard);background:color-mix(in srgb,var(--color-hard) 14%,transparent)}.badge.version{font-family:var(--font-mono);background:var(--color-primary-soft);color:var(--color-primary)}.chip{display:inline-block;padding:6px 14px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:var(--fs-sm);cursor:pointer;text-decoration:none!important}.chip:hover,.chip.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.section{padding:var(--space-7) 0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}.section-head h2{margin:0;font-size:var(--fs-h2)}.muted{color:var(--color-text-muted)}.tech-icon{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius);font-weight:800;font-size:.95rem;color:#fff;flex-shrink:0}.tech-icon.has-logo{background:#fff;border:1px solid var(--color-border)}.tech-icon.has-logo img{width:88%;height:88%;object-fit:contain}.soon{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.prose{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text);overflow-wrap:break-word;max-width:var(--content-max);font-weight:300;color:var(--color-prose, var(--color-text));-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.prose li{line-height:1.7}.prose :where(p){margin:0}.prose>*+*{margin-top:1em}.prose h2,.prose h3,.prose h4{position:relative;margin-bottom:.4em;line-height:1.3}.prose h2,.prose h3,.prose h4{color:var(--color-text);letter-spacing:-.01em}.prose h2{margin-top:1.25em;font-size:var(--fs-h2);font-weight:500}.prose h3{margin-top:1.1em;font-size:var(--fs-h3);font-weight:500}.prose h4{margin-top:1.4em;font-size:var(--fs-body);font-weight:500}.prose strong,.prose b{font-weight:600}.prose>h2:first-child{margin-top:0}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.5em}.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.prose :not(pre)>code{font-family:var(--font-mono);font-size:.86em;padding:.15em .4em;border-radius:4px;background:var(--color-inline-code-bg)}.prose strong{font-weight:700}.prose ul,.prose ol{padding-left:1.5em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.2em}.prose ul ul{list-style:circle}.prose li::marker{color:var(--color-text-muted)}.prose ol>li::marker{font-weight:700}.prose li:has(>input[type=checkbox]){list-style:none;margin-left:-1.5em}.prose input[type=checkbox]{width:1.05em;height:1.05em;margin:0 .5em 0 0;vertical-align:-.12em;accent-color:var(--color-primary)}.prose .figure{margin-left:0;margin-right:0;display:flex;flex-direction:column;gap:10px;align-items:center}.prose .figure .zoom{display:block;max-width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:var(--radius)}.prose .figure img{display:block;width:auto;max-width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--color-border);background:#fff}.prose .figure figcaption{font-size:var(--fs-sm);color:var(--color-text-muted);text-align:center}.prose hr{border:0;border-top:1px solid var(--color-border);margin:2.5em 0}.prose .table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.prose th,.prose td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border)}.prose th{background:var(--color-surface);font-weight:700}.prose tr:last-child td{border-bottom:0}.prose tbody tr:nth-child(2n){background:var(--color-surface)}.prose blockquote{margin-left:0;padding:.2em 1.2em;border-left:4px solid var(--color-border);color:var(--color-text-muted);font-style:italic}.prose .callout{--c: var(--color-note);padding:14px 18px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--c) 35%,transparent);border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 8%,var(--color-bg));font-size:var(--fs-base);line-height:1.65}.prose .callout .callout-title{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-weight:700;color:var(--c);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em}.prose .callout .callout-title .icon{width:18px;height:18px;flex-shrink:0}.prose .callout .callout-body>*+*{margin-top:.6em}.prose .callout ul{margin:0}.prose .callout.tip{--c: var(--color-tip)}.prose .callout.info{--c: var(--color-text-muted)}.prose .callout.warning{--c: var(--color-warning)}.prose .callout.danger{--c: var(--color-danger)}.prose .callout.remember{--c: var(--color-remember);border-style:dashed;border-left-style:solid}.prose .callout.summary{--c: var(--color-primary);border:2px solid var(--c);border-radius:var(--radius-lg);padding:18px 22px}.prose .callout.summary .callout-title{text-transform:none;letter-spacing:0;font-size:1.05rem;color:var(--color-text)}.prose .callout.summary .callout-title .icon{color:var(--c)}.prose mark{padding:.05em .25em;border-radius:3px;background:var(--color-mark-bg);color:var(--color-mark-text);box-decoration-break:clone;-webkit-box-decoration-break:clone}.prose .quiz{margin:1.6em 0;padding:20px 22px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.prose .quiz .quiz-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.prose .quiz .quiz-title{margin:0;font-size:1.15rem;font-weight:700}.prose .quiz .quiz-count{font-size:var(--fs-sm);color:var(--color-text-muted)}.prose .quiz .quiz-q{margin:0;padding:16px 0;border:0;border-top:1px solid var(--color-border);min-width:0}.prose .quiz legend{display:flex;gap:10px;padding:0;font-weight:600;line-height:1.5;margin-bottom:10px;float:left;width:100%}.prose .quiz .quiz-opts{clear:both;display:grid;gap:8px}.prose .quiz .quiz-num{flex-shrink:0;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);font-size:var(--fs-sm)}.prose .quiz .quiz-opt{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);cursor:pointer;line-height:1.45}.prose .quiz .quiz-opt input{flex-shrink:0;width:18px;height:18px;margin:0;accent-color:var(--color-primary)}.prose .quiz .quiz-opt:hover{border-color:var(--color-primary)}.prose .quiz .quiz-opt:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft)}.prose .quiz .quiz-opt:has(input:focus-visible){outline:2px solid var(--color-primary);outline-offset:2px}.prose .quiz [hidden]{display:none!important}.prose .quiz.marked .quiz-opt{cursor:default}.prose .quiz.marked .quiz-opt:hover{border-color:var(--color-border)}.prose .quiz.marked .quiz-opt.correct,.prose .quiz.marked .quiz-opt.correct:hover{border:2px solid var(--color-correct);background:color-mix(in srgb,var(--color-correct) 10%,var(--color-bg))}.prose .quiz.marked .quiz-opt.wrong,.prose .quiz.marked .quiz-opt.wrong:hover{border:2px solid var(--color-wrong);background:color-mix(in srgb,var(--color-wrong) 10%,var(--color-bg))}.prose .quiz.marked .quiz-opt.correct:after,.prose .quiz.marked .quiz-opt.wrong:after{margin-left:auto;font-weight:700;font-size:var(--fs-sm);white-space:nowrap}.prose .quiz.marked .quiz-opt.correct:after{content:"\2713  Correct answer";color:var(--color-correct)}.prose .quiz.marked .quiz-opt.wrong:after{content:"\2717  Your answer";color:var(--color-wrong)}.prose .quiz .quiz-q.unanswered legend{color:var(--color-wrong)}.prose .quiz .quiz-feedback{margin-top:10px;padding:10px 14px;border-left:3px solid var(--color-border);font-size:var(--fs-sm);line-height:1.6}.prose .quiz .quiz-q.is-correct .quiz-feedback{border-left-color:var(--color-correct)}.prose .quiz .quiz-q.is-wrong .quiz-feedback{border-left-color:var(--color-wrong)}.prose .quiz .quiz-verdict{margin:0 0 2px;font-weight:700}.prose .quiz .quiz-q.is-correct .quiz-verdict{color:var(--color-correct)}.prose .quiz .quiz-q.is-wrong .quiz-verdict{color:var(--color-wrong)}.prose .quiz .quiz-result{margin:4px 0 12px;font-weight:600}.prose .quiz .quiz-result:empty{display:none}.prose .quiz .quiz-score{font-size:1.3rem;color:var(--color-primary)}.prose .quiz .quiz-actions{display:flex;flex-wrap:wrap;gap:10px}.prose details.answer{margin:.6em 0 1.4em;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}.prose details.answer summary{cursor:pointer;padding:8px 14px;font-size:var(--fs-sm);font-weight:600;color:var(--color-primary)}.prose details.answer summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.prose details.answer .answer-body{padding:0 14px 10px}.prose details.answer .answer-body>:first-child{margin-top:0}.prose details.answer[open] summary{border-bottom:1px solid var(--color-border);margin-bottom:8px}:root:not([data-theme=dark]) .prose .callout.warning .callout-title{color:#8a5800}.prose .callout:not(.summary) .callout-body{font-style:italic}.prose .callout:not(.summary) .callout-body code{font-style:normal}.prose .callout:not(.summary) .callout-body strong{font-weight:600}.prose :not(pre)>code,.prose .quiz-opt{overflow-wrap:anywhere}.code-block{border:1px solid var(--ide-border);border-radius:var(--radius);background:var(--ide-bg);overflow:hidden;font-size:.92rem}.code-block .code-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:40px;padding:4px 8px 4px 14px;border-bottom:1px solid var(--ide-border);background:var(--ide-panel);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted)}.code-block .code-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block .code-actions{display:flex;gap:6px;flex-shrink:0}.code-block .code-copy,.code-block .code-run{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:600;cursor:pointer;text-decoration:none!important}.code-block .code-copy{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted)}.code-block .code-copy:hover{color:var(--color-primary);border-color:var(--color-primary)}.code-block .code-copy.copied{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.code-block .code-run{border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.code-block .code-run:hover{background:var(--color-primary-hover)}.code-block pre{margin:0;padding:14px 0;overflow-x:auto;line-height:1.65;counter-reset:line}.code-block code{font-family:var(--font-mono);color:var(--ide-fg);white-space:pre}.code-block .line{display:inline-block;min-width:100%;padding:0 16px;box-sizing:border-box}.code-block .line.hl{background:color-mix(in srgb,var(--color-primary) 9%,transparent);box-shadow:inset 3px 0 0 var(--color-primary)}.code-block pre.numbered .line:before{counter-increment:line;content:counter(line);display:inline-block;width:2ch;margin-right:16px;text-align:right;color:var(--color-text-muted);opacity:.7;-webkit-user-select:none;user-select:none}.code-block.is-output{background:var(--color-surface)}.code-block.is-output .code-head{color:var(--color-primary);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.code-group{border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.code-group .code-tabs{display:flex;gap:2px;padding:6px 8px 0;background:var(--color-surface-2);border-bottom:1px solid var(--color-border);overflow-x:auto}.code-group [role=tab]{padding:8px 14px;border:1px solid transparent;border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:transparent;color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;cursor:pointer}.code-group [role=tab][aria-selected=true]{background:var(--color-code-bg);border-color:var(--color-border);color:var(--color-text);margin-bottom:-1px}.code-group .code-block{border:0;border-radius:0}.code-group .code-block[hidden]{display:none}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-type,.hljs-meta .hljs-keyword{color:var(--ide-keyword)}.hljs-string,.hljs-regexp,.hljs-char,.hljs-addition,.hljs-template-tag{color:var(--ide-string)}.hljs-number{color:var(--ide-number)}.hljs-comment,.hljs-quote,.hljs-doctag{color:var(--ide-comment);font-style:italic}.hljs-title.function_,.hljs-function .hljs-title{color:var(--ide-method)}.hljs-meta,.hljs-meta .hljs-string{color:var(--ide-annotation)}.hljs-property,.hljs-attr,.hljs-template-variable{color:var(--ide-field)}.hljs-variable,.hljs-title.class_,.hljs-built_in,.hljs-params,.hljs-subst{color:inherit}
