@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.T19VSG_className{font-family:Geist,Geist Fallback;font-style:normal}.T19VSG_variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._8Li5zG_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._8Li5zG_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/85fcf895b86d74a6-s.1qlvuf-h9_nww.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5307092570128b5a-s.3s80slo4q4lah.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b67966e0b83b2cd0-s.p.2jrdrem4nuvb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.K1_hsq_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.K1_hsq_variable{--font-fraunces:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/caa77eaf0c6cae2c-s.0c05j22lu0e1h.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/6260001f568fa40d-s.14r01_8b-ryu9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/2aa781f449db21e3-s.p.2lg3sxkcxwsl6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}._7hUiSq_className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}._7hUiSq_variable{--font-bricolage:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/da4b870ab52b3094-s.2uxt0u9yugpfw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.2zeei6axiu3qn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/11cc37d7380d16b4-s.27211fhlic14m.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/a85fe84266768609-s.p.00hx3ibfyf9qx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}._0n5nRq_className{font-family:Caveat,Caveat Fallback;font-style:normal}._0n5nRq_variable{--font-hand:"Caveat", "Caveat Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--radius-lg:.5rem;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-card:var(--card);--color-border:var(--border);--color-fg:var(--fg);--color-muted:var(--muted);--color-accent:var(--accent);--color-accent-2:var(--accent-2)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-1{top:var(--spacing)}.top-2{top:calc(var(--spacing) * 2)}.top-8{top:calc(var(--spacing) * 8)}.top-10{top:calc(var(--spacing) * 10)}.top-100{top:calc(var(--spacing) * 100)}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.m-42{margin:calc(var(--spacing) * 42)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-\[calc\(100dvh-7rem\)\]{height:calc(100dvh - 7rem)}.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.p-5{padding:calc(var(--spacing) * 5)}.break-all{word-break:break-all}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#faf7f1;--card:#fffdf9;--card-2:#f5f0e6;--border:#e8e1d3;--border-strong:#d2c8b5;--fg:#241f19;--muted:#6a6254;--accent:#4b3fd1;--accent-2:#a5500a;--accent-ink:#fff;--tone-dsa:var(--accent);--tone-sd:#0f766e;--hl:#ffd45e;--hl-soft:var(--hl)}@supports (color:color-mix(in lab, red, red)){:root{--hl-soft:color-mix(in srgb, var(--hl) 52%, transparent)}}:root{--code-bg:#f7f3ea;--code-border:#e8e1d3;--k-client:#2f6bd6;--k-gateway:#7c55d4;--k-service:#0e8a72;--k-database:#b4660a;--k-cache:#cf4258;--k-queue:#4a9a28;--k-external:#766f63;--series-1:#0b8a70;--series-2:#b36b00;--series-3:#1d6fd1;--chart-surface:var(--card);--grid:#ece5d7;--axis:#cfc5b2;--good:#1f9d55;--warning:#f0a531;--serious:#ec835a;--critical:#d64545;--good-ink:#17803f;--critical-ink:#b3261e;--warning-ink:#8a5300;--shadow:0 1px 2px #3c280a0d;--shadow-lg:0 18px 44px -18px #281c0a4d, 0 2px 6px #281c0a0f;--radius:12px;--radius-lg:16px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--font-sans:var(--font-geist-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:var(--font-fraunces), "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-mono:var(--font-geist-mono), ui-monospace, Menlo, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:40px;--space-7:72px;--space-cards:28px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171310;--card:#1f1a15;--card-2:#1a1612;--border:#322b23;--border-strong:#463d31;--fg:#f3ede2;--muted:#a89f8e;--accent:#a99dff;--accent-2:#f0b35a;--accent-ink:#15112f;--tone-sd:#4dd0c4;--hl:#f6c945;--hl-soft:var(--hl)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark]{--hl-soft:color-mix(in srgb, var(--hl) 28%, transparent)}}[data-theme=dark]{--code-bg:#1a1612;--code-border:#322b23;--k-client:#6aa8ff;--k-gateway:#b99cff;--k-service:#4dd0b0;--k-database:#f0b35a;--k-cache:#ff8095;--k-queue:#8be26a;--k-external:#a39a8b;--series-1:#19a07f;--series-2:#c98500;--series-3:#3987e5;--grid:#2e2720;--axis:#463d31;--good-ink:#4cd17b;--critical-ink:#ff8b8b;--warning-ink:#f4c35a;--shadow:0 1px 2px #0000004d;--shadow-lg:0 24px 56px -16px #000000a6, 0 2px 6px #0000004d}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--fg);font:16px/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--hl-soft);color:var(--fg)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:8px 14px;font-weight:600;position:absolute;top:-48px;left:12px}.skip-link:focus{top:10px}.muted{color:var(--muted)}.link{color:var(--accent);font-weight:600;text-decoration:none}.link:hover{text-underline-offset:3px;text-decoration:underline}kbd{font:600 11px var(--font-mono);border:1px solid var(--border-strong);color:var(--muted);border-bottom-width:2px;border-radius:5px;padding:1px 5px}.container{max-width:1180px;margin:0 auto;padding:0 20px}.container-wide{max-width:1340px}h1,h2,h3,h4,h5{font-weight:650;line-height:1.22}h1,h2{font-family:var(--font-display);font-variation-settings:"SOFT" 60;letter-spacing:-.015em;text-wrap:balance;font-weight:600}:where(ul,ol):not([class]){padding-left:1.3em}:where(ul):not([class]){list-style:outside}:where(ol):not([class]){list-style:decimal}.contains-task-list{list-style:none;padding-left:.2em!important}.task-list-item .task-box{color:var(--accent);margin-right:8px}.site-footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 24px;margin-top:72px;padding:28px 20px 44px;font-size:14px;display:flex}.site-footer-line{margin:0}.site-footer nav{flex-wrap:wrap;gap:6px 18px;display:flex}.site-footer nav a{color:var(--muted);text-decoration:none}.site-footer nav a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.btn{font:600 14px var(--font-sans);border:1px solid var(--border-strong);color:var(--fg);cursor:pointer;transition:border-color .15s, background-color .15s, transform .2s var(--ease-out);background:0 0;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--fg);background:var(--card)}.btn:active:not(:disabled){transform:scale(.98)}.btn svg{transition:transform .2s var(--ease-out)}.btn:hover svg.lucide-arrow-right{transform:translate(3px)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.btn-primary:hover{background:color-mix(in srgb, var(--accent) 86%, var(--fg))}}.btn-primary:hover{border-color:#0000}.btn-sm{padding:6px 12px;font-size:13px}button{font:inherit}button:disabled{opacity:.45;cursor:not-allowed}.icon-btn{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--fg);background:var(--card-2)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px}.card-link{color:inherit;text-decoration:none;transition:border-color .2s,background-color .2s;display:block}.card-link:hover{border-color:var(--tone,var(--accent))}@supports (color:color-mix(in lab, red, red)){.card-link:hover{border-color:color-mix(in srgb, var(--tone,var(--accent)) 60%, var(--border))}}.card-link:active{background:var(--card-2)}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>*{animation:rise-in .6s var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 50ms)}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(2){--i:1}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(3){--i:2}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(4){--i:3}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(5){--i:4}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(6){--i:5}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(7){--i:6}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(8){--i:7}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(9){--i:8}:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>:nth-child(n+10){--i:9}@media (prefers-reduced-motion:reduce){:is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>*{animation:none}}:root[data-motion=reduce] :is(.grid-auto,.entry-cards,.roadmap,.track-cards,.path-list,.bento,.tracks,.stat-tiles)>*{animation:none}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.eyebrow{font:600 13px var(--font-sans);letter-spacing:.01em;color:var(--accent-2)}.card h3{letter-spacing:-.01em}.badge{font:600 12px var(--font-sans);background:currentColor;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.badge{background:color-mix(in srgb, currentColor 11%, transparent)}}.badge-Frontend{color:var(--k-client)}.badge-Backend{color:var(--k-service)}.badge-Full-stack{color:var(--k-gateway)}.badge-level{color:var(--accent-2)}.badge-done{color:var(--good-ink)}.tag{color:var(--muted);background:var(--card-2);border-radius:999px;padding:2px 10px;font-size:12.5px;display:inline-block}.page-head{padding:44px 0 12px}.page-head h1{margin:8px 0 14px;font-size:clamp(32px,5vw,46px);line-height:1.1}.page-head h1 .grad,.grad{color:var(--tone,var(--accent))}.page-head .lede{color:var(--muted);text-wrap:pretty;max-width:640px;margin:0;font-size:18px}.meta-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px;font-size:14px;display:flex}.lesson{grid-template-columns:230px minmax(0,1fr) 210px;align-items:start;gap:36px;padding-bottom:80px;display:grid}.lesson-side{max-height:calc(100vh - 92px);padding:24px 0;font-size:14px;position:sticky;top:76px;overflow:auto}.lesson-side h2{font:600 13px var(--font-sans);color:var(--muted);margin:0 0 10px}.lesson-side ol{margin:0;padding:0;list-style:none}.lesson-side li a{color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:6px 8px;text-decoration:none;display:flex}.lesson-side li a:hover{color:var(--fg);background:var(--card-2)}.lesson-side li a[aria-current=page]{color:var(--fg);background:var(--card-2);font-weight:600}.lesson-side .dot-n{border:1px solid var(--border-strong);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid}.lesson-side .dot-n[data-done=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.toc{max-height:calc(100vh - 92px);padding:24px 0;font-size:13px;position:sticky;top:76px;overflow:auto}.toc h2{font:600 13px var(--font-sans);color:var(--muted);margin:0 0 8px}.toc ul{border-left:1px solid var(--border);margin:0;padding:0;list-style:none}.toc a{color:var(--muted);border-left:1px solid #0000;margin-left:-1px;padding:4px 0 4px 12px;text-decoration:none;display:block}.toc a:hover{color:var(--fg);border-left-color:var(--accent)}.lesson-main{min-width:0;padding-top:8px}@media (max-width:1180px){.lesson{grid-template-columns:210px minmax(0,1fr)}.toc{display:none}}@media (max-width:900px){.lesson{grid-template-columns:minmax(0,1fr)}.lesson-side{display:none}}.progress-bar{background:var(--accent);z-index:60;transform-origin:0;width:100%;height:3px;position:fixed;top:0;left:0}.prose{font-size:17px;line-height:1.75}.prose>*+*{margin-top:1em}.prose h2{margin:2.2em 0 .6em;scroll-margin-top:80px;font-size:28px;line-height:1.22}.prose h3{margin:1.8em 0 .5em;scroll-margin-top:80px;font-size:19px}.prose h4{margin:1.4em 0 .4em;font-size:16px}.prose p,.prose li{color:var(--fg)}@supports (color:color-mix(in lab, red, red)){.prose p,.prose li{color:color-mix(in srgb, var(--fg) 90%, var(--muted))}}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.prose a:hover{text-decoration-thickness:2px}.prose strong{color:var(--fg);font-weight:650}.prose :is(p,li)>strong,mark{background:linear-gradient(transparent 56%, var(--hl-soft) 56%);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--fg);border-radius:2px;padding:0 .12em}.prose :not(pre)>code{font:.88em var(--font-mono);background:var(--card-2);border-radius:6px;padding:.12em .4em}.prose blockquote{border-left:3px solid var(--hl);color:var(--muted);margin:1.2em 0;padding:2px 18px}.prose hr{border:0;border-top:1px solid var(--border);margin:2.4em 0}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin:1.2em 0;overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:14.5px}.table-wrap th,.table-wrap td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 16px}.table-wrap thead th{color:var(--muted);background:var(--card-2);font-size:13px;font-weight:600}.table-wrap tr:last-child td,.table-wrap tr:last-child th{border-bottom:0}.table-wrap td{font-variant-numeric:tabular-nums}.tldr{border:0;border-left:4px solid var(--hl);background:var(--hl)}@supports (color:color-mix(in lab, red, red)){.tldr{background:color-mix(in srgb, var(--hl) 16%, var(--card))}}.tldr{border-radius:0 var(--radius) var(--radius) 0;padding:14px 20px}.tldr .eyebrow{color:var(--accent-2);margin-bottom:2px;display:block}.tldr p{margin:0;font-weight:500;color:var(--fg)!important}.callout{border-radius:0 var(--radius) var(--radius) 0;border-left:3px solid var(--border-strong);background:var(--card-2);gap:12px;padding:12px 18px;display:flex}.callout>svg{flex:none;margin-top:4px}.callout>div>:first-child{margin-top:0}.callout>div>:last-child{margin-bottom:0}.callout[data-kind=interview]{border-left-color:var(--accent)}.callout[data-kind=interview]>svg{color:var(--accent)}.callout[data-kind=warning]{border-left-color:var(--warning)}.callout[data-kind=warning]>svg{color:var(--warning-ink)}.callout[data-kind=tip]{border-left-color:var(--tone-sd)}.callout[data-kind=tip]>svg{color:var(--tone-sd)}.callout[data-kind=note]>svg{color:var(--muted)}.callout .callout-title{margin-bottom:2px;font-weight:700;display:block}.req-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.req-grid section{border-radius:var(--radius);background:var(--card-2);padding:14px 18px}.req-grid h4{color:var(--muted);margin:0 0 6px;font-size:13px;font-weight:600}.req-grid ul{margin:0;padding-left:1.1em;font-size:15px}.steps{counter-reset:step;gap:16px;list-style:none;display:grid;padding:0!important}.step{counter-increment:step;grid-template-columns:30px minmax(0,1fr);gap:14px;display:grid}.step:before{content:counter(step);background:var(--accent);border-radius:50%;width:30px;height:30px}@supports (color:color-mix(in lab, red, red)){.step:before{background:color-mix(in srgb, var(--accent) 12%, transparent)}}.step:before{color:var(--accent);place-items:center;font-size:14px;font-weight:700;display:grid}.step h4{font-size:17px;margin:3px 0 4px!important}.step .step-body>:first-child{margin-top:0}.step .step-body>*+*{margin-top:.7em}.followups{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}.followups details{border-top:1px solid var(--border)}.followups details:first-child{border-top:0}.followups summary{cursor:pointer;align-items:baseline;gap:10px;padding:14px 18px;font-weight:600;list-style:none;display:flex}.followups summary::-webkit-details-marker{display:none}.followups summary:before{content:"+";color:var(--accent);flex:none;width:12px;font-weight:700}.followups details[open] summary:before{content:"–"}.followups .answer{padding:0 18px 16px 40px}.followups .answer>:first-child{margin-top:0}.stat-tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.stat-tile{background:var(--card-2);border-radius:var(--radius);padding:14px 16px}.stat-label{color:var(--muted);font-size:13px}.stat-value{letter-spacing:-.01em;font-size:26px;font-weight:650}.stat-sub{color:var(--muted);font-size:12.5px}.code-block{border:1px solid var(--code-border);border-radius:var(--radius);background:var(--code-bg);margin:1.2em 0;position:relative;overflow:hidden}.code-block figcaption,.code-tabs [role=tablist]{font:12.5px var(--font-mono);color:var(--muted);border-bottom:1px solid var(--code-border);background:var(--code-bg);align-items:center;gap:4px;padding:8px 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.code-block figcaption,.code-tabs [role=tablist]{background:color-mix(in srgb, var(--code-bg) 70%, var(--card))}}.code-block figcaption,.code-tabs [role=tablist]{overflow-x:auto}.code-tabs [role=tab]{color:var(--muted);cursor:pointer;font:12.5px var(--font-mono);white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:4px 10px}.code-tabs [role=tab][aria-selected=true]{background:var(--card);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}.code-block pre,.code-tabs pre{font:13px/1.65 var(--font-mono);tab-size:2;margin:0;padding:16px 18px;overflow-x:auto;background:0 0!important}.shiki,.shiki span{color:var(--shiki-light)}[data-theme=dark] .shiki,[data-theme=dark] .shiki span{color:var(--shiki-dark)}.copy-btn{border:1px solid var(--code-border);background:var(--card);color:var(--muted);cursor:pointer;z-index:2;border-radius:7px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;display:inline-flex;position:absolute;top:6px;right:8px}.copy-btn:hover{color:var(--fg);border-color:var(--border-strong)}.quiz{border:1px solid var(--border);background:var(--card);border-radius:var(--radius);padding:16px 18px;container-type:inline-size}.quiz-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 12px;display:flex}.quiz h3{font-size:17px;margin:0!important}.quiz-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600}.quiz-note{color:var(--muted);font-size:13px;margin:2px 0 0!important}.quiz fieldset{border:0;min-width:0;margin:12px 0 0;padding:0}.quiz legend{margin-bottom:6px;padding:0;font-weight:600;line-height:1.45}.quiz legend:focus{outline:none}.quiz legend:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.quiz-qno{color:var(--accent)}.quiz label{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin-top:6px;padding:8px 12px;line-height:1.45;display:flex}.quiz label:hover{border-color:var(--border-strong)}.quiz label:has(input:checked){border-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.quiz label:has(input:checked){background:color-mix(in srgb, var(--accent) 6%, transparent)}}.quiz label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.quiz label[data-state=correct]{border-color:var(--good);background:var(--good)}@supports (color:color-mix(in lab, red, red)){.quiz label[data-state=correct]{background:color-mix(in srgb, var(--good) 10%, transparent)}}.quiz label[data-state=wrong]{border-color:var(--critical);background:var(--critical)}@supports (color:color-mix(in lab, red, red)){.quiz label[data-state=wrong]{background:color-mix(in srgb, var(--critical) 8%, transparent)}}.quiz label>span:not(.quiz-mark){flex:1;min-width:0}.quiz-mark{flex:none;margin-top:3px;display:inline-flex}.quiz input{accent-color:var(--accent);margin-top:4px}.quiz .explain{color:var(--muted);margin:8px 0 0;font-size:14px}.quiz .result{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:8px;display:flex}.quiz .result:empty{margin:0}.quiz-score{margin:0!important}.quiz-score:focus{outline:none}.quiz-pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;display:flex}.quiz-pager .btn:disabled{opacity:.45;cursor:default}.quiz-dots{gap:6px;list-style:none;display:flex;margin:0!important;padding:0!important}.quiz-dots li{margin:0!important}.quiz-dots button{border:1.5px solid var(--border-strong);background:var(--card);width:30px;height:30px;color:var(--muted);font:600 12.5px var(--font-sans);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid}.quiz-dots button:hover{border-color:var(--accent)}.quiz-dots button[data-state=answered]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.quiz-dots button[data-state=answered]{background:color-mix(in srgb, var(--accent) 12%, var(--card))}}.quiz-dots button[data-state=answered]{color:var(--fg)}.quiz-dots button[data-state=correct]{border-color:var(--good);color:var(--good-ink);background:var(--good)}@supports (color:color-mix(in lab, red, red)){.quiz-dots button[data-state=correct]{background:color-mix(in srgb, var(--good) 12%, var(--card))}}.quiz-dots button[data-state=wrong]{border-color:var(--critical);color:var(--critical-ink);background:var(--critical)}@supports (color:color-mix(in lab, red, red)){.quiz-dots button[data-state=wrong]{background:color-mix(in srgb, var(--critical) 9%, var(--card))}}.quiz-dots button[aria-current=step]{box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--accent);color:var(--fg)}.quiz-dots button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.quiz-nudge{color:var(--warning-ink);font-size:13px;margin:6px 0 0!important}.quiz-nudge:empty{margin:0!important}@container (max-width:400px){.quiz-pager .btn{padding-inline:10px}}.prev-next{grid-template-columns:1fr 1fr;gap:12px;margin-top:48px;display:grid}.prev-next a{text-decoration:none}.prev-next small{color:var(--muted);font-size:13px;display:block}.prev-next .next{text-align:right;grid-column:2}@media (max-width:560px){.prev-next{grid-template-columns:1fr}.prev-next .next{grid-column:1}}.next-note{border-left:3px solid var(--hl);background:var(--hl);margin-top:28px;padding:12px 18px}@supports (color:color-mix(in lab, red, red)){.next-note{background:color-mix(in srgb, var(--hl) 12%, transparent)}}.next-note{border-radius:0 var(--radius) var(--radius) 0;color:var(--muted)}.flow{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:1.6em 0;padding:14px 14px 10px}.flow-scroll{border-radius:10px;overflow-x:auto}.flow-scroll:focus-visible{outline-offset:-2px}.flow svg{margin:0 auto;display:block}.flow svg text{font:13px var(--font-sans);fill:var(--fg)}.flow .node rect{fill:var(--card-2);stroke-width:1.8px}.flow .node{cursor:default;transition:opacity .2s}.flow .node:focus-visible{outline:none}.flow .node:focus-visible rect{stroke-width:3px}.flow .node .node-label,.flow .actor .node-label{font-weight:600}.flow .node-sub{fill:var(--muted)!important;font-size:11.5px!important}.flow .node[data-state=down] rect{stroke-dasharray:4 3;opacity:.55}.flow .node[data-state=busy] rect{animation:1s ease-in-out infinite busy-pulse}@keyframes busy-pulse{50%{stroke-width:4px}}.state-badge rect{fill:var(--card);stroke:currentColor;stroke-width:1.2px}.state-badge text{font-weight:700;fill:currentColor!important;font-size:11.5px!important}.state-badge{color:var(--muted)}.state-badge[data-state=hit],.state-badge[data-state=ok]{color:var(--good-ink)}.state-badge[data-state=miss],.state-badge[data-state=busy]{color:var(--warning-ink)}.state-badge[data-state=down]{color:var(--critical-ink)}.flow .edge-base{fill:none;stroke:var(--border-strong);stroke-width:1.4px}.flow .arrow-head{fill:var(--muted)}.flow .edge-flow{fill:none;stroke:var(--muted);stroke-width:1.6px;stroke-dasharray:6 6;opacity:.85;animation:1s linear infinite dash-12}.flow .edge-flow[data-style=async]{stroke-dasharray:2 6;animation:1.6s linear infinite dash-8}.flow .edge-flow[data-style=replication]{stroke-dasharray:10 4 2 4;animation:1.4s linear infinite dash-20}.flow .edge-trace{fill:none;stroke:var(--accent);stroke-width:2.6px;stroke-linecap:round}.flow .edge[data-active] .edge-flow{stroke:var(--accent);stroke-width:2.6px;opacity:1}.flow .edge-label{paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round;font-weight:500;fill:var(--muted)!important;font-size:12px!important}.flow [data-dim]{opacity:.22;transition:opacity .2s}.flow.is-paused .edge-flow,.flow.is-paused .node[data-state=busy] rect{animation-play-state:paused}@keyframes dash-12{to{stroke-dashoffset:-12px}}@keyframes dash-8{to{stroke-dashoffset:-8px}}@keyframes dash-20{to{stroke-dashoffset:-20px}}@media (prefers-reduced-motion:reduce){.flow .edge-flow,.flow .node[data-state=busy] rect{animation:none}}:root[data-motion=reduce] .flow .edge-flow,:root[data-motion=reduce] .flow .node[data-state=busy] rect{animation:none}.packet{stroke:var(--card);stroke-width:2px}.packet--ok{fill:var(--accent)}.packet--miss{fill:var(--accent-2)}.packet--error{fill:var(--critical)}.flow figcaption{margin-top:8px}.flow-caption{color:var(--fg);align-items:baseline;gap:10px;min-height:1.6em;margin:10px 4px 4px;font-size:16px;display:flex}.flow-caption .step-no{background:var(--accent);width:22px;height:22px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.uml-stages{display:contents}.uml-stages .step-banner{margin:10px 0 12px}.uml-stage-nav{box-shadow:0 -14px 0 var(--card);z-index:5;background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:8px 0;display:flex;position:sticky;top:118px}.uml-stage-dots{flex-wrap:wrap;gap:6px;list-style:none;display:flex;margin:0!important;padding:0!important}.uml-stage-dots li{margin:0!important}.uml-stage-dots button{border:1.5px solid var(--border-strong);background:var(--card);width:32px;height:32px;color:var(--muted);font:650 13.5px var(--font-sans);cursor:pointer;border-radius:50%;place-items:center;display:grid}.uml-stage-dots button:hover{border-color:var(--accent);color:var(--fg)}.uml-stage-dots button[data-done]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.uml-stage-dots button[data-done]{background:color-mix(in srgb, var(--accent) 12%, var(--card))}}.uml-stage-dots button[data-done]{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.uml-stage-dots button[data-done]{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}}.uml-stage-dots button[data-done]{color:var(--accent)}.uml-stage-dots button[aria-current=step]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.uml-stage-buttons{gap:8px;display:flex}.uml-stage-count{font:600 13px var(--font-mono);color:var(--muted);display:none}@media (min-width:1080px){.uml-stage-nav{top:58px}}@media (max-width:1079px){.uml-stage-dots{display:none}.uml-stage-buttons{justify-content:space-between;align-items:center;width:100%}.uml-stage-count{display:inline}}.uml-stage-buttons .btn{padding:8px 14px;font-size:14px}.step-banner-title{margin:0 0 3px;font-size:clamp(18px,1.9vw,22px);font-weight:700;line-height:1.3}.step-banner-title+.step-banner-text{color:var(--fg);font-size:clamp(16px,1.5vw,17.5px);font-weight:400}@supports (color:color-mix(in lab, red, red)){.step-banner-title+.step-banner-text{color:color-mix(in srgb, var(--fg) 88%, var(--muted))}}.step-banner-title+.step-banner-text{animation:none}.uml .step-banner{min-height:0}.flow-head{gap:10px;margin-bottom:12px;display:grid}.flow-head .step-controls{margin:0}.step-banner{border-radius:var(--radius);background:var(--hl);align-items:flex-start;gap:14px;min-height:4.9em;padding:14px 18px;display:flex}@supports (color:color-mix(in lab, red, red)){.step-banner{background:color-mix(in srgb, var(--hl) 15%, var(--card))}}.step-banner{box-shadow:inset 4px 0 0 var(--hl)}.step-banner[data-idle]{background:var(--card-2);box-shadow:inset 4px 0 0 var(--border-strong)}.step-banner .step-no{background:var(--accent);width:32px;height:32px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;margin-top:2px;font-size:16px;font-weight:700;display:inline-grid}.step-banner[data-idle] .step-no{background:var(--border-strong);color:var(--card)}.step-banner-body{min-width:0}.step-banner-meta{font:600 13px var(--font-sans);color:var(--accent-2);margin:0 0 2px}.step-banner[data-idle] .step-banner-meta{color:var(--muted)}.step-banner-text{color:var(--fg);text-wrap:pretty;animation:banner-in .35s var(--ease-out);margin:0;font-size:clamp(17px,1.7vw,20px);font-weight:500;line-height:1.45}.step-banner[data-idle] .step-banner-text{color:var(--muted);font-weight:400}@keyframes banner-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.step-banner-text{animation:none}}:root[data-motion=reduce] .step-banner-text{animation:none}@media (max-width:560px){.step-banner{gap:10px;min-height:5.6em;padding:12px 14px}.step-banner .step-no{width:28px;height:28px;font-size:14px}}.flow-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px 16px;margin:4px 4px 0;display:flex}.flow--compact{background:0 0;border:0;margin:0;padding:0}.flow .open-pg{border:1px solid var(--border);border-radius:999px;align-items:center;gap:5px;padding:2px 10px;line-height:1.6;text-decoration:none;display:inline-flex;color:var(--muted)!important;font-size:12.5px!important}.flow .open-pg:hover{border-color:var(--accent);color:var(--fg)!important}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:12.5px;list-style:none;display:flex;margin:0!important;padding:0!important}.legend li{align-items:center;gap:5px;display:inline-flex;margin:0!important}.text-desc{color:var(--muted);font-size:13.5px}.text-desc summary{cursor:pointer}.text-desc ol,.text-desc ul{margin:6px 0 0;padding-left:1.3em}.step-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:4px 2px;display:flex}.step-buttons{align-items:center;gap:4px;margin-left:auto;display:flex}.step-buttons button,.step-buttons select{border:1px solid var(--border);background:var(--card-2);min-width:32px;height:32px;color:var(--fg);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:13px;display:inline-flex}.step-buttons button:hover:not(:disabled){border-color:var(--accent)}.step-buttons .play{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);padding:0 12px;font-weight:600}.step-count{font:12px var(--font-mono);color:var(--muted);text-align:center;min-width:42px}.scenario-tabs{background:var(--card-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:4px;padding:3px;display:inline-flex}.scenario-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 11px;font-size:13px;font-weight:500}.scenario-tabs button[aria-checked=true]{background:var(--card);color:var(--fg);box-shadow:0 0 0 1px var(--border), var(--shadow);font-weight:600}.branch-pickers{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.scrub{flex:1;display:flex}.scrub input{width:100%;min-width:120px;accent-color:var(--accent)}.seq .lifeline{stroke:var(--border-strong);stroke-dasharray:3 4}.seq .actor rect{fill:var(--card-2);stroke-width:1.8px}.seq .seq-line{fill:none;stroke:var(--muted);stroke-width:1.6px}.seq .seq-msg[data-type=reply] .seq-line{stroke-dasharray:5 4}.seq .seq-msg[data-type=async] .seq-line{stroke-dasharray:2 4}.seq .seq-msg[data-active] .seq-line{stroke:var(--accent);stroke-width:2.4px}.seq .seq-label{paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round;font-size:13.5px!important}.flow.seq{flex-direction:column;max-height:min(610px,88vh);display:flex}.flow.seq>*{flex:none}.seq .seq-scroll{scrollbar-width:thin;flex:0 auto;min-height:200px;overflow:auto}.seq .branch-pickers{gap:6px;margin-bottom:8px}.seq .branch-pickers .scenario-tabs{padding:2px}.seq .branch-pickers .scenario-tabs button{padding:4px 9px;font-size:12.5px}.seq .seq-head{z-index:1;background:var(--card);position:sticky;top:0}.seq .seq-actor2{font-size:12px!important}.seq .seq-frame rect{fill:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.seq .seq-frame rect{fill:color-mix(in srgb, var(--accent-2) 5%, transparent)}}.seq .seq-frame rect{stroke:var(--accent-2)}@supports (color:color-mix(in lab, red, red)){.seq .seq-frame rect{stroke:color-mix(in srgb, var(--accent-2) 55%, var(--border))}}.seq .seq-frame rect{stroke-dasharray:5 4}.seq .frame-label{font-weight:700;fill:var(--accent-2)!important;font-size:12px!important}.seq .seq-note rect{fill:var(--k-client)}@supports (color:color-mix(in lab, red, red)){.seq .seq-note rect{fill:color-mix(in srgb, var(--k-client) 8%, var(--card))}}.seq .seq-note rect{stroke:var(--k-client)}@supports (color:color-mix(in lab, red, red)){.seq .seq-note rect{stroke:color-mix(in srgb, var(--k-client) 40%, var(--border))}}.seq .seq-note text{fill:var(--muted)!important;font-size:12.5px!important}.seq [data-dim]{opacity:.16}.uml .uml-class rect{fill:var(--card-2);stroke:var(--k-gateway);stroke-width:1.6px}.uml .uml-class line{stroke:var(--border-strong)}.uml .uml-name{font-weight:700;font-size:13px!important}.uml .uml-stereo{font-style:italic;fill:var(--muted)!important;font-size:10.5px!important}.uml .uml-member{font:11.5px var(--font-mono)!important}.uml .uml-rel path{fill:none;stroke:var(--muted);stroke-width:1.5px}.uml .uml-hollow{fill:var(--card);stroke:var(--muted);stroke-width:1.3px}.uml .uml-filled{fill:var(--muted)}.uml .uml-open{fill:none;stroke:var(--muted);stroke-width:1.4px}.uml .uml-class{cursor:default}.uml-legend{margin-top:6px!important}.uml .flow-caption{color:var(--muted);font-size:13.5px;line-height:1.5}.uml .uml-count{fill:var(--muted)!important;font-size:10.5px!important}.uml--compact .uml-class{cursor:pointer}.uml .uml-class:focus{outline:none}.uml .uml-class:focus-visible rect{stroke-width:3px}.uml .uml-class[data-selected] rect{stroke:var(--accent);stroke-width:2.6px;fill:var(--accent)}@supports (color:color-mix(in lab, red, red)){.uml .uml-class[data-selected] rect{fill:color-mix(in srgb, var(--accent) 8%, var(--card-2))}}.uml .uml-class[data-new] rect{stroke:var(--good);stroke-width:2.4px}.uml .uml-rel[data-lit] path{stroke:var(--accent);stroke-width:2px}.uml .uml-rel[data-lit] .uml-filled{fill:var(--accent)}.uml [data-dim]{opacity:.35;transition:opacity .2s}.uml-card{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--card-2);border-radius:10px;margin:8px 2px 4px;padding:8px 12px;font-size:13px}.uml-card-head{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex;margin:0 0 4px!important}.uml-card-name{color:var(--fg);font-size:14px;font-weight:700}.uml-card-stereo{color:var(--muted);font-size:12px;font-style:italic}.uml-card-hint{color:var(--muted);margin-left:auto;font-size:12px}.uml-card-cols{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px 16px;display:grid}.uml-card-k{font:600 11px var(--font-sans);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);display:block}.uml-card ul{font:12.5px/1.5 var(--font-mono);list-style:none;margin:0!important;padding:0!important}.uml-card li{overflow-wrap:anywhere;margin:0!important}.uml-card-none{color:var(--muted);font-style:italic;margin:0!important}.uml-card-rels{color:var(--muted);font-size:12.5px;margin:4px 0 0!important}.decision .dt-edge path{fill:none;stroke:var(--border-strong);stroke-width:1.5px}.decision .dt-edge[data-lit] path{stroke:var(--accent);stroke-width:2.6px}.decision .dt-node rect{fill:var(--card-2);stroke:var(--border-strong);stroke-width:1.4px}.decision .dt-node[data-type=result] rect{stroke:var(--k-database)}.decision .dt-node[data-current] rect{stroke:var(--accent);stroke-width:3px}.decision .dt-node text{font-size:11.5px!important}.dt-panel{gap:10px;margin-top:8px;display:grid}.dt-question{margin:0;font-weight:600}.dt-buttons{gap:8px;display:flex}.dt-buttons button,.dt-trail .ghost{border:1px solid var(--border);background:var(--card-2);color:var(--fg);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:14px;font-weight:600;display:inline-flex}.dt-buttons button:hover{border-color:var(--accent)}.dt-result{border:1px solid var(--accent)}@supports (color:color-mix(in lab, red, red)){.dt-result{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border))}}.dt-result{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dt-result{background:color-mix(in srgb, var(--accent) 8%, transparent)}}.dt-result{border-radius:10px;padding:10px 14px}.dt-result p{margin:0 0 4px}.dt-trail ol{margin:0 0 8px;padding-left:1.3em;font-size:13.5px}.dt-trail li button{color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;padding:2px 0}.timeline .lane-label{font-weight:600;font-size:12px!important}.timeline .span rect{fill:var(--series-1)}.timeline .span[data-tone="2"] rect{fill:var(--series-2)}.timeline .span[data-tone="3"] rect{fill:var(--series-3)}.timeline .span-label{font-weight:600;fill:#fff!important;font-size:11px!important}.timeline .grid{stroke:var(--grid)}.timeline .tick{fill:var(--muted)!important;font-size:10.5px!important}.timeline .playhead{stroke:var(--accent-2);stroke-width:2px}.timeline .tl-marker line{stroke:var(--critical);stroke-dasharray:3 3}.timeline .tl-marker text{font-weight:600;fill:var(--critical-ink)!important;font-size:10.5px!important}.chart{background:var(--chart-surface);border:1px solid var(--border);border-radius:var(--radius);margin:1.6em 0;padding:14px 16px 10px}.chart-title{margin:0 0 6px;font-size:15px;font-weight:600}.chart-note{color:var(--muted);font-weight:400}.chart-frame{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart svg text{font:11.5px var(--font-sans);fill:var(--fg)}.chart .tick{font-variant-numeric:tabular-nums;fill:var(--muted)!important}.chart .value{font-weight:600}.chart .grid{stroke:var(--grid);stroke-width:1px}.chart .axis{stroke:var(--axis);stroke-width:1px}.chart .bar{fill:var(--series-1);transition:filter .15s}.chart .bar[data-hot]{filter:brightness(1.15)}.chart .bar-group:focus-visible{outline:none}.chart .bar-group:focus-visible .bar{stroke:var(--fg);stroke-width:2px}.chart .line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .area{opacity:.1}.chart .dot{stroke:var(--chart-surface);stroke-width:2px}.chart .end-label{fill:var(--muted)!important;font-size:11.5px!important}.chart .end-leader{fill:none;stroke-width:1.2px;opacity:.7}.chart .crosshair line{stroke:var(--axis)}.chart .marker-line{stroke:var(--accent-2);stroke-width:1.5px}.chart-legend{margin:0 0 6px!important}.line-key{border-radius:2px;width:14px;height:3px;display:inline-block}.chart-tooltip{background:var(--card);border:1px solid var(--border-strong);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;z-index:3;border-radius:8px;padding:6px 10px;font-size:12.5px;position:absolute;top:4px;transform:translate(-50%)}.chart-tooltip .tt-title{color:var(--muted);margin-bottom:2px;font-size:11.5px}.chart-tooltip .tt-row{align-items:center;gap:6px;display:flex}.chart-tooltip .tt-key{border-radius:2px;width:10px;height:3px}.chart-tooltip span{color:var(--muted)}.chart-table{color:var(--muted);margin-top:6px;font-size:13px}.chart-table summary{cursor:pointer}.chart-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;margin-top:6px}.chart-table th,.chart-table td{text-align:left;border-bottom:1px solid var(--border);padding:3px 12px 3px 0}.widget{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:1.6em 0;padding:14px 16px}.widget-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin-bottom:8px;display:flex}.widget-head h3{align-items:center;gap:8px;font-size:16px;display:flex;margin:0!important}.widget-head .eyebrow{font-size:11px}.widget-sub{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.45;display:-webkit-box;overflow:hidden;color:var(--muted)!important;margin:2px 0 0!important}.controls{flex-wrap:wrap;align-items:flex-end;gap:8px 14px;margin:4px 0 8px;display:flex}.control{color:var(--muted);flex:1;gap:1px;min-width:130px;font-size:12.5px;display:grid}.control b{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:650}.control input[type=range]{width:100%;accent-color:var(--accent)}.control select,.control input[type=number],.control input[type=text]{border:1px solid var(--border);background:var(--card-2);height:32px;color:var(--fg);border-radius:8px;padding:0 8px}.seg{background:var(--card-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 10px;font-size:13px}.seg button[aria-pressed=true]{background:var(--card);color:var(--fg);box-shadow:0 0 0 1px var(--border);font-weight:600}.wbtn{border:1px solid var(--border);background:var(--card-2);height:32px;color:var(--fg);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.wbtn:hover:not(:disabled){border-color:var(--accent)}.wbtn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.wbtn.danger{color:var(--critical-ink)}.readout{margin:6px 0 0;font-size:13.5px;line-height:1.5}.readout strong{font-variant-numeric:tabular-nums}.sim-svg{width:100%;height:auto;display:block}.sim-svg text{font:11.5px var(--font-sans);fill:var(--fg)}.sim-svg .muted-text{fill:var(--muted)}.widget-more{border:1px solid var(--border);background:var(--card-2);border-radius:10px;margin:6px 0 0}.widget-more>summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:600;list-style:none;display:flex}.widget-more>summary::-webkit-details-marker{display:none}.widget-more>summary:before{content:"▸";transition:transform .15s}.widget-more[open]>summary:before{transform:rotate(90deg)}.widget-more>summary:hover{color:var(--fg)}.widget-more-body{padding:4px 10px 10px}.widget-more-body>.controls:first-child{margin-top:0}.ok-ink{color:var(--good-ink)}.warn-ink{color:var(--warning-ink)}.bad-ink{color:var(--critical-ink)}.pill{border:1px solid;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.coming-soon{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);text-align:center;margin:1.6em 0;padding:18px}.hero{grid-template-columns:minmax(0,1fr);gap:26px;padding:48px 0 24px;display:grid}.hero>div:first-child{max-width:820px}.hero h1{letter-spacing:-.025em;margin:10px 0 14px;font-size:clamp(34px,5.4vw,56px);line-height:1.06}.hero p{color:var(--muted);max-width:540px;font-size:18px}.hero-cta{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.hero-visual{background:radial-gradient(600px 260px at 50% 0, var(--accent), transparent)}@supports (color:color-mix(in lab, red, red)){.hero-visual{background:radial-gradient(600px 260px at 50% 0, color-mix(in srgb, var(--accent) 16%, transparent), transparent)}}.hero-visual{border:1px solid var(--border);border-radius:20px;padding:14px}.entry-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 8px;display:grid}.entry-cards .card h3{margin:6px 0 4px;font-size:20px}.entry-cards .card p{color:var(--muted);margin:0;font-size:14.5px}.entry-cards .card .icon{background:var(--accent);border-radius:10px;place-items:center;width:38px;height:38px;display:grid}@supports (color:color-mix(in lab, red, red)){.entry-cards .card .icon{background:color-mix(in srgb, var(--accent) 14%, transparent)}}.entry-cards .card .icon{color:var(--accent)}.section-title{letter-spacing:-.01em;margin:44px 0 14px;font-size:22px}.tracks{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.tracks ol{color:var(--muted);margin:8px 0 0;padding-left:1.2em;font-size:14.5px}.tracks a{color:var(--fg)}.metro{margin:18px 0 8px}.metro svg{width:100%;height:auto;display:block}.metro .line-base{stroke:var(--border-strong);stroke-width:6px;fill:none;stroke-linecap:round}.metro .line-done{stroke:var(--accent);stroke-width:6px;fill:none;stroke-linecap:round}.metro .station circle{fill:var(--card);stroke:var(--border-strong);stroke-width:3px;transition:r .15s}.metro .station[data-done=true] circle{fill:var(--accent);stroke:var(--accent)}.metro .station[data-next=true] circle{stroke:var(--accent);animation:1.6s ease-in-out infinite station-pulse}@keyframes station-pulse{50%{stroke-width:7px}}@media (prefers-reduced-motion:reduce){.metro .station[data-next=true] circle{animation:none}}.metro .station text{font:600 12px var(--font-sans);fill:var(--fg)}.metro .station .n{fill:var(--muted);font-size:11px;font-weight:500}.metro a:focus-visible{outline:none}.metro a:focus-visible circle{stroke:var(--fg)}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0;display:flex}.filters input[type=search]{border:1px solid var(--border);background:var(--card);min-width:220px;height:38px;color:var(--fg);border-radius:999px;flex:1;padding:0 16px;font-size:14px}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:6px 13px;font-size:13.5px}.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.q-card h3{margin:10px 0 6px;font-size:18px}.q-card p{color:var(--muted);margin:0;font-size:14.5px}.q-card .row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.q-card .tags{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.cmdk-overlay{z-index:80;background:#00000073;place-items:start center;padding-top:12vh;display:grid;position:fixed;inset:0}.cmdk-panel{background:var(--card);border:1px solid var(--border-strong);border-radius:16px;width:min(640px,100vw - 32px);overflow:hidden;box-shadow:0 20px 60px #00000059}.cmdk-panel [cmdk-input]{border:0;border-bottom:1px solid var(--border);width:100%;height:52px;color:var(--fg);background:0 0;outline:none;padding:0 18px;font-size:16px}.cmdk-panel [cmdk-list]{max-height:58vh;padding:8px;overflow:auto}.cmdk-panel [cmdk-group-heading]{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:8px 10px 4px;font-size:11.5px}.cmdk-panel [cmdk-item]{cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;font-size:14.5px;display:flex}.cmdk-panel [cmdk-item][data-selected=true]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.cmdk-panel [cmdk-item][data-selected=true]{background:color-mix(in srgb, var(--accent) 14%, transparent)}}.cmdk-panel [cmdk-item] small{color:var(--muted);margin-left:auto;font-size:12px}.cmdk-panel [cmdk-empty]{color:var(--muted);text-align:center;padding:18px}.pg{border-top:1px solid var(--border);grid-template-columns:210px minmax(0,1fr) 270px;height:calc(100dvh - 58px);display:grid}.pg-palette,.pg-inspector{background:var(--card);padding:12px;font-size:13.5px;overflow:auto}.pg-palette{border-right:1px solid var(--border)}.pg-inspector{border-left:1px solid var(--border)}.pg-palette h3,.pg-inspector h3{font:600 11.5px var(--font-sans);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:12px 0 6px}.palette-item{border:1px solid var(--border);background:var(--card-2);width:100%;color:var(--fg);cursor:grab;text-align:left;border-radius:9px;align-items:center;gap:8px;margin-bottom:5px;padding:7px 9px;font-size:13.5px;display:flex}.palette-item:hover{border-color:var(--accent)}.pg-center{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid}.pg-toolbar{border-bottom:1px solid var(--border);background:var(--card);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.pg-toolbar .title-input{color:var(--fg);background:0 0;border:1px solid #0000;border-radius:6px;min-width:120px;margin-right:auto;padding:4px 6px;font-size:15px;font-weight:650}.pg-toolbar .title-input:hover,.pg-toolbar .title-input:focus{border-color:var(--border)}.pg-canvas{min-height:0;position:relative}.pg-bottom{border-top:1px solid var(--border);background:var(--card);max-height:34vh;overflow:auto}.pg-bottom:has(.mission){max-height:42vh}.pg-tabs{border-bottom:1px solid var(--border);background:var(--card);z-index:1;gap:2px;padding:6px 10px 0;display:flex;position:sticky;top:0}.pg-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:7px 12px;font-size:13.5px;font-weight:600}.pg-tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}.pg-panel{padding:10px 14px 14px;font-size:14px}.finding{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:7px 0;display:flex}.finding:last-child{border-bottom:0}.finding>svg{flex:none;margin-top:3px}.finding[data-level=error]>svg{color:var(--critical-ink)}.finding[data-level=warn]>svg{color:var(--warning-ink)}.finding[data-level=info]>svg{color:var(--muted)}.finding .acts{flex:none;gap:6px;margin-left:auto;display:flex}.rubric li{align-items:flex-start;gap:8px;padding:5px 0;list-style:none;display:flex}.rubric{margin:0;padding:0!important}.field{gap:3px;margin-bottom:10px;display:grid}.field span{color:var(--muted);font-size:12.5px}.field input,.field select{border:1px solid var(--border);background:var(--card-2);height:32px;color:var(--fg);border-radius:8px;padding:0 8px;font-size:13.5px}.field input[type=range]{height:auto;accent-color:var(--accent);background:0 0;border:0;padding:0}@media (max-width:1000px){.pg{grid-template-rows:auto minmax(420px,1fr) auto;grid-template-columns:minmax(0,1fr);height:auto}.pg-palette{border-right:0;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;display:flex}.pg-palette h3{width:100%;margin:4px 0 0}.palette-item{width:auto;margin:0}.pg-center{min-height:70dvh}.pg-inspector{border-left:0;border-top:1px solid var(--border)}}.hld-node{border:2px solid var(--kind,var(--border-strong));background:var(--card);min-width:150px;color:var(--fg);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;display:flex;position:relative}.hld-node[data-selected=true]{outline:2px solid var(--accent);outline-offset:2px}.hld-node .label{font-weight:650}.hld-node .badge-x{font:600 11px var(--font-mono);color:var(--muted);margin-left:auto}.hld-node .load{text-align:center;justify-content:center;align-items:center;gap:4px;margin-top:4px;font-size:11px;font-weight:600;display:flex;position:absolute;top:100%;left:0;right:0}.hld-node[data-load=ok] .load{color:var(--good-ink)}.hld-node[data-load=hot] .load{color:var(--warning-ink)}.hld-node[data-load=over]{border-color:var(--critical)}.hld-node[data-load=over] .load{color:var(--critical-ink)}.hld-node[data-flagged=true]{box-shadow:0 0 0 4px var(--warning)}@supports (color:color-mix(in lab, red, red)){.hld-node[data-flagged=true]{box-shadow:0 0 0 4px color-mix(in srgb, var(--warning) 45%, transparent)}}.react-flow__handle{background:var(--card);border:2px solid var(--border-strong);width:9px;height:9px}.react-flow__handle:hover{border-color:var(--accent)}@media (pointer:coarse){.react-flow__handle{width:16px;height:16px}}.edge-label-rf{pointer-events:all;font:600 11px var(--font-sans);background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:1px 7px;position:absolute}.edge-packet{fill:var(--accent)}.react-flow__edge.edge-async .react-flow__edge-path,.edge-async{stroke-dasharray:5 5}.react-flow__edge-path{stroke:var(--muted);stroke-width:1.6px}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent);stroke-width:2.4px}.react-flow__attribution{background:0 0!important}.empty-hint{pointer-events:none;color:var(--muted);text-align:center;z-index:1;place-items:center;display:grid;position:absolute;inset:0}.empty-hint>div{pointer-events:all;background:var(--card);border:1px solid var(--border);border-radius:14px;max-width:380px;padding:18px 22px}@media print{.site-nav,.lesson-side,.toc,.no-print{display:none!important}body:before{display:none}body{color:#000;background:#fff}.card,.table-wrap{break-inside:avoid}}.mission{grid-template-columns:minmax(170px,230px) minmax(0,1fr);gap:16px;display:grid}.mission-steps{align-content:start;gap:4px;margin:0;padding:0;list-style:none;display:grid}.mission-steps li{margin:0}.mission-steps button{text-align:left;width:100%;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.mission-steps button[aria-current=step]{border-color:var(--accent);background:var(--card-2)}.mission-steps button:disabled{color:var(--muted);cursor:not-allowed}.mission-num{border:1px solid var(--border-strong);border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.mission-steps button[data-done] .mission-num{color:var(--good);border-color:var(--good)}.mission-body h3{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 4px;font-size:16px;display:flex}.mission-body h3 .eyebrow{margin:0 10px 0 0}.mission-body p{margin:4px 0}.mission-scenario{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.mission-actions{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.mission-result{min-height:24px}.mission-fail,.mission-pass>p{align-items:flex-start;gap:8px;display:flex}.mission-fail{color:var(--critical)}.mission-fail svg,.mission-pass svg{flex:none;margin-top:2px}.mission-pass svg{color:var(--good)}.mission-pass>p{margin-bottom:8px}.mission-done{display:block!important}@media (max-width:720px){.mission{grid-template-columns:minmax(0,1fr)}.mission-steps{grid-auto-columns:max-content;grid-auto-flow:column;overflow-x:auto}}.doodle{color:var(--fg);--doodle-fill:var(--accent);flex-direction:column;align-items:center;gap:4px;margin:0;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.doodle{--doodle-fill:color-mix(in srgb, var(--accent) 16%, transparent)}}.doodle{--doodle-warm:var(--accent-2)}.doodle svg{width:var(--doodle-size,160px);height:auto;overflow:visible}.doodle figcaption{max-width:var(--doodle-size,160px);font:500 15px/1.15 var(--font-hand,cursive);color:var(--muted);text-align:center}.doodle .d-line{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.doodle .d-thin{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.doodle .d-fill{fill:var(--doodle-fill);stroke:none}.doodle .d-warm{fill:var(--doodle-warm)}@supports (color:color-mix(in lab, red, red)){.doodle .d-warm{fill:color-mix(in srgb, var(--doodle-warm) 24%, transparent)}}.doodle .d-warm{stroke:none}.doodle .d-accent{fill:none;stroke:var(--accent);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.doodle .d-hot{fill:none;stroke:var(--doodle-warm);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.doodle .d-text{font-family:var(--font-hand,cursive);fill:currentColor;stroke:none;font-size:14px}.hand{font-family:var(--font-hand,cursive)}.doodle-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:0 0 8px;padding:0;list-style:none;display:grid}.doodle-grid li{border:1px solid var(--border);background:var(--card);border-radius:12px;justify-items:center;gap:6px;margin:0;padding:14px 10px 10px;display:grid}.doodle-grid code{color:var(--muted);font-size:12px}.hld-node[data-tone=new]{box-shadow:0 0 0 4px var(--good)}@supports (color:color-mix(in lab, red, red)){.hld-node[data-tone=new]{box-shadow:0 0 0 4px color-mix(in srgb, var(--good) 40%, transparent)}}.hld-node[data-tone=active]{box-shadow:0 0 0 4px var(--accent)}@supports (color:color-mix(in lab, red, red)){.hld-node[data-tone=active]{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 45%, transparent)}}.hld-node[data-tone=active]{border-color:var(--accent)}.hld-node[data-tone=dim]{opacity:.35}.lab-head{padding-bottom:6px}.lab{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 380px;height:calc(100dvh - 268px);min-height:560px;display:grid}.lab-canvas{background:var(--card-2);min-width:0;min-height:420px;position:relative}.lab-canvas .react-flow{background:0 0}.lab-minimap{opacity:.9}.lab-caption{z-index:5;border:1px solid var(--border);background:var(--card);border-radius:10px;padding:6px 12px;font-size:14px;position:absolute;top:12px;left:14px}.lab-panel{border-left:1px solid var(--border);background:var(--card);align-content:start;gap:12px;padding:14px 16px 24px;font-size:14px;display:grid;overflow:auto}.lab-modes{grid-template-columns:1fr 1fr;width:100%;display:grid}.lab-modes button{justify-content:center}.lab-section{gap:10px;display:grid}.lab-title{margin:0;font-size:18px}.lab-stepper{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lab-stepper input[type=range]{flex:1;min-width:90px}.lab-hopcount{color:var(--muted);flex:1;font-size:13px}.lab-block{background:var(--card-2);border-left:4px solid var(--border-strong);border-radius:10px;padding:10px 12px}.lab-block[data-kind=problem]{border-left-color:var(--warning)}.lab-block[data-kind=fix]{border-left-color:var(--good)}.lab-block h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 4px;font-size:12px}.lab-block p{margin:0 0 6px}.lab-measure{color:var(--warning-ink,var(--fg));align-items:center;gap:6px;font-size:13.5px;display:flex}.lab-chips{flex-wrap:wrap;gap:6px;margin:0;display:flex}.chip{border:1px solid var(--border-strong);background:var(--card);color:var(--fg);font:600 12.5px var(--font-sans);cursor:pointer;border-radius:999px;padding:3px 10px}.chip:hover{border-color:var(--accent)}.chip-quiet{color:var(--muted);cursor:default;margin-left:6px;font-weight:500}.lab-say{font-family:var(--font-hand,inherit);margin:0;font-size:20px;line-height:1.3}.lab-say .eyebrow{font-family:var(--font-sans);margin-bottom:2px;display:block}.lab-layer{gap:4px;display:grid}.lab-actions{flex-wrap:wrap;gap:6px;display:flex}.lab-findings{gap:6px;margin:0;padding:0;list-style:none;display:grid}.lab-findings li{background:var(--card-2);border-left:4px solid var(--border-strong);border-radius:8px;margin:0;padding:8px 10px}.lab-findings li[data-level=bad]{border-left-color:var(--critical)}.lab-findings li[data-level=warn]{border-left-color:var(--warning)}.lab-findings li[data-level=ok]{border-left-color:var(--good)}.lab-hop{background:var(--card-2);border-radius:10px;gap:4px;margin:0;padding:10px 12px;display:grid}.lab-budget{background:var(--card-2);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.lab-budget-fill{background:var(--accent);height:100%;transition:width .3s;display:block}.lab-budget-fill[data-over]{background:var(--critical)}.concept{gap:8px;display:grid}.concept-head{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.concept-head h3{margin:0;font-size:19px}.concept-head .eyebrow{margin:0}.concept-eg{color:var(--muted);margin:2px 0 0;font-size:12.5px}.concept-list{gap:2px;margin:0;display:grid}.concept-list dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:6px;font-size:11.5px;font-weight:650}.concept-list dd{margin:0}.concept h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:6px 0 0;font-size:11.5px}.concept-trade{gap:3px;margin:0;padding-left:18px;display:grid}.concept-say{font-family:var(--font-hand,inherit);margin:4px 0 0;font-size:20px;line-height:1.3}.concept-say .eyebrow,.concept-follow .eyebrow{font-family:var(--font-sans);display:block}.concept-follow{background:var(--accent-2);border-radius:8px;margin:0;padding:8px 10px}@supports (color:color-mix(in lab, red, red)){.concept-follow{background:color-mix(in srgb, var(--accent-2) 14%, transparent)}}.concept-learn{flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;display:flex}.concept-learn li{margin:0}@media (max-width:960px){.lab{grid-template-rows:56vh auto;grid-template-columns:minmax(0,1fr);height:auto}.lab-panel{border-left:0;border-top:1px solid var(--border)}}.lab-sketch .hld-node{font-family:var(--font-hand,inherit);box-shadow:3px 3px 0 var(--kind,var(--fg));border-width:2.5px;border-radius:255px 15px 225px/15px 225px 15px 255px;font-size:17px}@supports (color:color-mix(in lab, red, red)){.lab-sketch .hld-node{box-shadow:3px 3px 0 color-mix(in srgb, var(--kind,var(--fg)) 22%, transparent)}}.lab-sketch .react-flow__node:nth-child(3n) .hld-node{transform:rotate(-1.1deg)}.lab-sketch .react-flow__node:nth-child(3n+1) .hld-node{border-radius:15px 225px 15px 255px/255px 15px 225px;transform:rotate(.9deg)}.lab-sketch .hld-node .label{font-weight:700}.lab-sketch .hld-node .load{font-family:var(--font-sans)}.lab-sketch .react-flow__edge-path{stroke-width:2.4px;stroke-linecap:round;filter:url(#sk-wobble)}.lab-sketch .edge-label-rf{font-family:var(--font-hand,inherit);font-size:15px}@media (prefers-reduced-motion:reduce){.lab-sketch .react-flow__edge-path{filter:none}}html[data-sketch=on] .flow:not(.uml) svg{filter:url(#sk-wobble)}html[data-sketch=on] .flow:not(.uml) text{font-family:var(--font-hand,inherit);font-size-adjust:.5}@media (prefers-reduced-motion:reduce){html[data-sketch=on] .flow:not(.uml) svg{filter:none}}.lab-modes button[aria-selected=true]{background:var(--card);color:var(--fg);box-shadow:0 0 0 1px var(--accent);font-weight:650}.lab-modes button{padding:7px 10px}.lab-sketch .hld-node .load{margin-top:2px;font-size:10.5px}.lab-head{padding-block:14px 0!important}.lab-head h1{margin:0;font-size:30px}.lab-head .lede{display:none}.lab{height:calc(100dvh - 168px)}.lab-sketch .hld-node{min-width:126px;padding:5px 10px;font-size:18px}.lab-sketch .hld-node .load{font-size:11px}.lab{grid-template-columns:minmax(0,1fr) 360px}.term-wrap{display:inline;position:relative}.term{all:unset;cursor:help;border-bottom:1.5px dotted var(--accent)}.term:hover,.term[aria-expanded=true]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.term:hover,.term[aria-expanded=true]{background:color-mix(in srgb, var(--accent) 14%, transparent)}}.term:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.term-pop{z-index:40;border:1px solid var(--border-strong);background:var(--card);width:max-content;max-width:min(300px,78vw);color:var(--fg);text-align:left;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:400;line-height:1.45;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 28px -12px #00000059}.term-pop[data-flip]{left:auto;right:0}.term-pop b{color:var(--accent)}.term-links{gap:12px;margin-top:6px;font-size:13px;display:flex}.site-footer nav a.site-footer-all{color:var(--fg);font-weight:600}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
:root{--cm-keyword:#cf222e;--cm-string:#0a3069;--cm-number:#0550ae;--cm-comment:#6e7781;--cm-fn:#8250df;--cm-def:#953800;--cm-type:#953800;--cm-prop:#0550ae;--cm-punct:#24292f;--diff-easy:#0b7a63;--diff-medium:#a35f00;--diff-hard:#b42323}[data-theme=dark]{--cm-keyword:#ff7b72;--cm-string:#a5d6ff;--cm-number:#79c0ff;--cm-comment:#8b949e;--cm-fn:#d2a8ff;--cm-def:#ffa657;--cm-type:#ffa657;--cm-prop:#79c0ff;--cm-punct:#c9d1d9;--diff-easy:#46d6b4;--diff-medium:#f4b95a;--diff-hard:#ff8b8b}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.diff{font:600 12px var(--font-sans);background:color-mix(in srgb, currentColor 11%, transparent);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;display:inline-flex}.diff-Easy{color:var(--diff-easy)}.diff-Medium{color:var(--diff-medium)}.diff-Hard{color:var(--diff-hard)}.js-ref{background:color-mix(in srgb, var(--accent) 9%, transparent);vertical-align:baseline;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:1px 10px;font-size:12.5px;font-weight:600;line-height:1.7;display:inline-flex;color:var(--accent)!important;text-decoration:none!important}.js-ref:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)}.js-ref-row{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.js-ref-label{color:var(--muted);font-size:13px;font-weight:600}.dsa-progress{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0 4px;font-size:14px;display:flex}.dsa-progress strong{color:var(--fg)}.dsa-progress-bar{background:var(--card-2);border-radius:999px;flex:1;min-width:120px;max-width:360px;height:6px;display:inline-block;position:relative;overflow:hidden}.dsa-progress-bar>span{background:var(--accent);border-radius:999px;transition:width .3s;position:absolute;inset:0 auto 0 0}.dsa-progress-bar--thin{min-width:60px;height:6px}.solved-tick{flex:none}.pattern-select select{border:1px solid var(--border);background:var(--card);max-width:280px;height:38px;color:var(--fg);border-radius:999px;padding:0 14px;font-size:14px}.plist-group h2{align-items:baseline;gap:10px;margin:26px 0 8px;font-size:18px;display:flex}.plist-group h2 a{color:var(--fg);text-decoration:none}.plist-group h2 a:hover{color:var(--accent)}.plist-group h2 .muted{font-size:13px;font-weight:500}.plist{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin:0;list-style:none;overflow:hidden;padding:0!important}.plist li{margin:0!important}.plist li+li{border-top:1px solid var(--border)}.plist-row{grid-template-columns:18px minmax(150px,250px) minmax(0,1fr) auto 76px;align-items:center;gap:14px;padding:12px 18px;display:grid;color:var(--fg)!important;text-decoration:none!important}.plist-row>.diff{justify-self:end}.plist-row:hover{background:var(--card-2)}.plist-title{font-weight:600}.plist-summary{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.plist-tags{gap:4px;display:flex}@media (max-width:760px){.plist-row{grid-template-columns:18px minmax(0,1fr) auto}.plist-row>.diff{justify-self:auto}.plist-summary,.plist-tags{display:none}}.pattern-problems,.bridges{margin-top:2.4em}.bridge-list{gap:10px;margin:0;list-style:none;display:grid;padding:0!important}.bridge-list li{margin:0!important}.bridge{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);grid-template-columns:32px minmax(0,1fr) auto;grid-template-areas:"icon title go""icon why go";align-items:center;gap:2px 14px;padding:14px 16px;display:grid;color:var(--fg)!important;text-decoration:none!important}.bridge:hover{border-color:var(--border-strong)}.bridge-icon{background:color-mix(in srgb, var(--accent) 10%, transparent);width:32px;height:32px;color:var(--accent);border-radius:8px;grid-area:icon;place-items:center;display:grid}.bridge-title{grid-area:title;font-weight:600}.bridge-why{color:var(--muted);grid-area:why;font-size:14px}.bridge>svg:last-child{color:var(--muted);grid-area:go}.problem-link{align-items:center;gap:6px;font-weight:600;display:inline-flex}.problem-link .diff{padding:0 7px;font-size:10.5px}.js-side-group+.js-side-group{margin-top:14px}.js-sheet .lesson-side ol a{padding:4px 8px}.js-topic{padding-top:6px;scroll-margin-top:76px}.js-topic+.js-topic{border-top:1px solid var(--border);margin-top:2.6em}.js-topic>h2{margin-top:1.2em}.js-topic h2 .anchor{color:inherit;text-decoration:none}.js-topic h2 .anchor:hover:after{content:" #";color:var(--muted)}.js-topic-summary{font-size:17px;color:var(--muted)!important}.js-used-by{flex-wrap:wrap;align-items:center;gap:6px;margin-top:1.4em;display:flex}.js-used-by .tag{text-decoration:none}.js-sheet .toc{display:none}.js-sheet{grid-template-columns:250px minmax(0,1fr)}@media (max-width:900px){.js-sheet{grid-template-columns:minmax(0,1fr)}}.run-code figcaption{flex-wrap:wrap;justify-content:space-between;gap:6px 8px}.run-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.run-langs{flex:none;padding:1px}.run-langs [role=radio]{min-height:24px;padding:2px 9px;font-size:12px}.run-note{font:12.5px/1.5 var(--font-sans);color:var(--muted);border-bottom:1px solid var(--code-border);background:color-mix(in srgb, var(--code-bg) 60%, var(--card));align-items:center;gap:6px;margin:0;padding:6px 12px;display:flex}.run-note svg{flex:none}.run-code .console-out>.py-status{margin:0;padding:10px 12px}.run-actions{flex:none;gap:6px;margin-left:auto;display:inline-flex}.run-btn{font:600 12px var(--font-sans);border:1px solid var(--code-border);background:var(--card);color:var(--fg);cursor:pointer;border-radius:7px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.run-btn:hover:not(:disabled){border-color:var(--accent)}.run-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.run-btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.run-code figcaption .copy-btn{position:static}.console-out{border-top:1px solid var(--code-border);background:color-mix(in srgb, var(--code-bg) 60%, var(--card))}.console-head{font:600 11.5px var(--font-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);justify-content:space-between;align-items:center;padding:6px 12px 0;display:flex}.console-head button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px}.console-head button:hover{color:var(--fg)}.console-body{font:12.5px/1.6 var(--font-mono);max-height:320px;padding:6px 12px 10px;overflow:auto}.log-line{white-space:pre-wrap;word-break:break-word;border-bottom:1px dashed color-mix(in srgb, var(--code-border) 70%, transparent);padding:1px 0}.log-line:last-child{border-bottom:0}.log-line[data-level=error]{color:var(--critical-ink)}.log-line[data-level=warn]{color:var(--warning-ink)}.log-level{font:700 10px var(--font-sans);text-transform:uppercase;letter-spacing:.05em;border:1px solid;border-radius:4px;margin-right:6px;padding:0 4px}.code-editor{background:var(--code-bg);height:100%;min-height:200px}.code-editor .cm-editor{height:100%}.code-editor--loading{font:13.5px/1.6 var(--font-mono);color:var(--muted);white-space:pre-wrap;margin:0;padding:12px 16px;overflow:auto}.run-code .code-editor{height:auto;max-height:520px}.run-code .code-editor .cm-editor{max-height:520px}.pw{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);height:calc(100dvh - 58px);display:grid}.pw-left{border-right:1px solid var(--border);background:var(--card);flex-direction:column;min-height:0;padding:20px 28px 24px;display:flex;overflow:auto}.pw-crumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.pw-crumbs a{color:var(--muted);text-decoration:none}.pw-crumbs a:hover{color:var(--accent);text-decoration:underline}.pw-pos{margin-left:auto}.pw-head h1{margin:8px 0 10px;font-size:30px;line-height:1.15}.pw-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pw-meta .tag{text-decoration:none}.pw-meta .tag:hover{border-color:var(--accent);color:var(--fg)}.pw-solved{margin-left:auto}.pw-tabs{border-bottom:1px solid var(--border);background:var(--card);z-index:2;gap:2px;margin:16px -28px 0;padding:0 28px;display:flex;position:sticky;top:-16px}.pw-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:9px 12px;font-size:14px;font-weight:600;display:inline-flex;position:relative}.pw-tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--accent)}.pw-dot{background:var(--accent-2);border-radius:50%;width:8px;height:8px}.pw-panel{flex:1;padding-top:6px;font-size:15.5px}.pw-panel>:first-child{margin-top:.8em}.pw-hints ol{padding-left:1.3em}.pw-hints li{margin-bottom:.5em}.pw-locked{text-align:center;border:1px dashed var(--border-strong);color:var(--muted);border-radius:14px;margin-top:1.2em;padding:26px 22px}.pw-locked h3{color:var(--fg);margin:8px 0 6px!important}.pw-locked p{max-width:460px;margin:0 auto 10px}.pw-prevnext{border-top:1px solid var(--border);justify-content:space-between;gap:10px;margin-top:24px;padding-top:12px;font-size:14px;display:flex}.pw-prevnext a{color:var(--muted);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.pw-prevnext a:hover{color:var(--accent)}.pw-right{grid-template-rows:auto minmax(220px,1fr) auto;min-width:0;min-height:0;display:grid}.pw-toolbar{border-bottom:1px solid var(--border);background:var(--card);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.pw-langs{flex:none}.pw-langs [role=radio]:disabled{cursor:not-allowed;opacity:.6}.pw-langnote{color:var(--muted);flex:1 0 100%;align-items:center;gap:6px;margin:0;font-size:13px;display:flex}.pw-langnote svg{flex:none}.pw-spacer{flex:1}.py-status{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:2px 0 8px;font-size:13.5px;display:flex}.py-status svg{flex:none}.py-status__text{flex:220px;min-width:0}.py-status--error{color:var(--warning-ink)}.py-bar{background:var(--card-2);border:1px solid var(--border);border-radius:999px;flex:140px;max-width:260px;height:6px;overflow:hidden}.py-bar>span{background:var(--accent);border-radius:999px;height:100%;transition:width .2s;display:block}[data-motion=reduce] .py-bar>span{transition:none}@media (prefers-reduced-motion:reduce){.py-bar>span{transition:none}}.pw-editor{min-height:0;overflow:hidden}.pw-results{border-top:1px solid var(--border);background:var(--card);max-height:44vh;padding:10px 14px 14px;font-size:14px;overflow:auto}.pw-status{flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0;font-size:13.5px;display:flex}.pw-results-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.pw-headline span{align-items:center;gap:6px;display:inline-flex}.pw-rtabs{background:var(--card-2);border:1px solid var(--border);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.pw-rtabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 10px;font-size:13px}.pw-rtabs button[aria-selected=true]{background:var(--card);color:var(--fg);box-shadow:0 0 0 1px var(--border);font-weight:600}.pw-banner{background:color-mix(in srgb, var(--hl) 20%, var(--card));border:0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 2px;padding:10px 14px;font-size:13.5px;display:flex}.pw-banner--ok{background:color-mix(in srgb, var(--good) 11%, var(--card))}.pw-banner .link{cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-weight:650}.pw-dots{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.pw-case{border:1px solid var(--border);background:var(--card-2);color:var(--fg);cursor:pointer;border-radius:8px;align-items:center;gap:5px;padding:3px 9px;font-size:12.5px;display:inline-flex}.pw-case[data-pass=true] svg{color:var(--good-ink)}.pw-case[data-pass=false] svg{color:var(--critical-ink)}.pw-case[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pw-case-detail{grid-template-columns:110px minmax(0,1fr);gap:6px 12px;margin:0;display:grid}.pw-case-detail dt{color:var(--muted);padding-top:6px;font-size:12.5px;font-weight:600}.pw-case-detail dd{min-width:0;margin:0}.pw-case-detail pre,.pw-error{font:12.5px/1.55 var(--font-mono);background:var(--code-bg);border:1px solid var(--code-border);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:180px;margin:0;padding:6px 10px;overflow:auto}.pw-case-detail pre[data-pass=false]{border-color:color-mix(in srgb, var(--critical) 60%, var(--code-border))}.pw-case-detail pre[data-pass=true]{border-color:color-mix(in srgb, var(--good) 60%, var(--code-border))}.pw-error{color:var(--critical-ink);margin:8px 0}.pw-note{color:var(--muted);font-size:13.5px}.pw-console{font:12.5px/1.6 var(--font-mono)}.pw-log-group+.pw-log-group{margin-top:8px}.pw-log-title{font:600 11.5px var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}@media (max-width:1000px){.pw{grid-template-columns:minmax(0,1fr);height:auto}.pw-left{border-right:0;border-bottom:1px solid var(--border);overflow:visible}.pw-tabs{top:58px}.pw-right{grid-template-rows:auto 440px auto}.pw-results{max-height:none}.pw-case-detail{grid-template-columns:minmax(0,1fr)}}.example{margin:.8em 0}.example h4{font-size:14px;margin:0 0 4px!important}.example pre{font:13px/1.6 var(--font-mono);background:var(--code-bg);border:1px solid var(--code-border);white-space:pre-wrap;word-break:break-word;border-radius:10px;margin:0;padding:8px 12px}.example-explain{font-size:14px;color:var(--muted)!important;margin:4px 0 0!important}.solution>:first-child{margin-top:.6em}.algo{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:1.6em 0;padding:12px 14px 10px;container:algo/inline-size}.algo-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin-bottom:8px;display:flex}.algo-head h3.algo-title{flex:240px;min-width:0;font-size:15.5px;line-height:1.3;margin:0!important}.algo-picks{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.algo-picks .scenario-tabs{padding:2px}.algo-picks .scenario-tabs button{padding:4px 10px}.algo-picks .wbtn{min-height:30px}.algo-picks .scenario-tabs button[data-mine]{color:var(--accent)}.algo-edit[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.algo-body{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage""vars""now""code";align-items:start;gap:8px;display:grid}.algo-stage{background:var(--card-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;grid-area:stage;align-content:flex-start;align-items:flex-start;gap:10px 18px;min-width:0;min-height:110px;padding:8px 10px;display:flex;overflow-x:auto}.algo-stage>*{min-width:0;max-width:100%}.algo-big{flex:3 280px}.algo-big[data-kind=grid]{flex:0 auto}.algo-side{flex-wrap:wrap;flex:100%;align-items:flex-start;gap:8px 18px;display:flex}.algo-side>.av{max-width:100%}.algo-stage[data-big]>.algo-side{flex:auto;width:min-content}.algo-stage>.av-note,.algo-side>.av-note{flex:100%}.algo-stage[data-big]>.algo-side[data-note]{min-width:min(100%,190px)}.algo-stage .av-scroll{overflow:visible}.algo-stage .av-gridwrap{gap:2px}.algo-stage .av-gcell{min-width:30px;height:28px}.algo-stage .av-head{min-height:18px}.algo-stage:focus-visible{outline-offset:-2px}.algo-now{grid-area:now;min-width:0}.algo-now .step-controls{margin:0 2px}.algo-now .flow-caption{margin:6px 4px 0;font-size:14px;line-height:1.45}@container algo (min-width:560px){.algo-stage[data-big] .algo-side :is(.av-track,.av-stackbox,.av-queuebox,.av-gridwrap){zoom:.82}.algo-stage[data-big] .algo-side .av-chip{padding:2px 7px;font-size:12px}}@container algo (max-width:480px){.algo-now .flow-caption{margin-inline:0;font-size:14px}.algo-edit{padding-inline:9px}.algo-edit[aria-expanded=false] .algo-edit-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:is(.av-track,.av-gridwrap,.av-stackbox,.av-queuebox){zoom:.86}}.algo-code{border:1px solid var(--code-border);background:var(--code-bg);border-radius:10px;grid-area:code;min-width:0;position:relative;overflow:hidden}.algo-code pre{max-height:360px;font:12px/1.65 var(--font-mono);tab-size:2;scrollbar-width:thin;margin:0;padding:6px 0;position:relative;overflow:auto;background:0 0!important}.algo-code:not([data-open]) pre{max-height:71.4px}.algo-code code{counter-reset:ln;min-width:max-content;display:block}.algo-code .line{width:100%;padding:0 12px 0 0;transition:background .25s;display:inline-block}.algo-code .line:before{counter-increment:ln;content:counter(ln);text-align:right;width:2.4em;color:var(--muted);opacity:.6;margin-right:10px;transition:color .25s,opacity .25s;display:inline-block}.algo-code .line.is-active{background:color-mix(in srgb, var(--accent) 18%, transparent)}.algo-code .line.is-active:before{opacity:1;color:var(--accent);font-weight:700}.algo-hl{background:var(--accent);pointer-events:none;border-radius:0 2px 2px 0;width:3px;height:1.65em;transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s;position:absolute;top:0;left:0}.algo-code-toggle{z-index:1;border:1px solid var(--code-border);background:var(--card);height:24px;color:var(--muted);font:600 11.5px var(--font-sans);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 9px;display:inline-flex;position:absolute;bottom:5px;right:6px;box-shadow:0 1px 2px #0000000f}.algo-code-toggle:hover{color:var(--accent);border-color:var(--accent)}.algo-code-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.algo-vars{font:12px var(--font-mono);flex-wrap:wrap;grid-area:vars;gap:4px;min-width:0;margin:0;display:flex}.algo-vars>div{border:1px solid var(--border);background:var(--card-2);border-radius:7px;gap:6px;max-width:100%;padding:1px 7px;transition:border-color .2s,background .2s;display:inline-flex}.algo-vars>div[data-changed]{border-color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 14%, var(--card))}.algo-vars>div[data-changed] dd{animation:.45s cubic-bezier(.2,.8,.3,1) av-pop}.algo-vars dt{color:var(--muted)}.algo-vars dd{overflow-wrap:anywhere;margin:0;font-weight:600;display:inline-block}.algo-foot{margin-top:6px}.algo-foot .text-desc summary{font-size:13px}@container algo (min-width:800px){.algo-body{grid-template:"stage code""vars code""now code"1fr/minmax(0,1.1fr) minmax(0,1fr);gap:8px 14px}.algo-code:not([data-open]) pre,.algo-code pre{max-height:380px}.algo-code-toggle{display:none}}.algo-note{border-left:3px solid var(--accent-2);color:var(--muted);margin:0 0 8px;padding:3px 0 3px 10px;font-size:13px}.algo--compact{background:0 0;border:0;margin:0;padding:0}.algo--compact .algo-body{grid-template:"stage""now"/minmax(0,1fr)}.algo--compact .algo-stage{background:0 0;border:0;min-height:0;padding:0;overflow:hidden}.algo--compact .flow-caption{color:var(--muted);min-height:3.2em;font-size:13.5px}.algo-input{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:var(--card-2);border-radius:12px;margin:0 0 12px;padding:12px}.algo-fields{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 12px;display:grid}.algo-field{flex-direction:column;gap:4px;min-width:0;display:flex}.algo-field--wide{grid-column:1/-1}.algo-field--check{flex-direction:row;align-self:end;align-items:center;gap:8px;min-height:34px}.algo-field--check input{width:16px;height:16px;accent-color:var(--accent)}.algo-flabel{font:600 12.5px var(--font-mono);color:var(--fg)}.algo-field input[type=text],.algo-field textarea{width:100%;min-width:0;font:13.5px/1.5 var(--font-mono);color:var(--fg);background:var(--card);border:1px solid var(--border-strong);border-radius:8px;padding:6px 9px}.algo-field textarea{resize:vertical;min-height:3.4em}.algo-field :is(input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.algo-field [aria-invalid=true]{border-color:var(--critical);box-shadow:0 0 0 1px var(--critical)}.algo-fhelp{color:var(--muted);font-size:12px;line-height:1.4}.algo-input-foot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.algo-input-err{color:var(--critical-ink);flex:220px;margin:0;font-size:13px;line-height:1.45}.av{min-width:0}.av-label{font:600 12px var(--font-mono);color:var(--fg);margin-bottom:5px}.av-label .muted{font-weight:400}.av-scroll{padding-bottom:2px;overflow-x:auto}.av-empty{color:var(--muted);font-size:12.5px;font-style:italic}.av-track{position:relative}.av-cell{border:1.5px solid var(--border-strong);background:var(--card);width:40px;height:40px;font:600 15px var(--font-mono);border-radius:9px;place-items:center;transition:background .25s,border-color .25s,opacity .25s,color .25s;display:grid;position:absolute;top:0}.av-cell[data-size=sm]{font-size:12.5px}.av-cell[data-size=xs]{font-size:10.5px}.av-ghost{color:var(--muted);font:500 10px var(--font-sans);background:0 0;border-style:dashed}.av-idx{text-align:center;width:40px;font:10.5px var(--font-mono);color:var(--muted);position:absolute}.av-ptr{text-align:center;width:40px;font:700 11px var(--font-mono);color:var(--accent-2);white-space:nowrap;justify-content:center;display:flex;position:absolute;top:0;left:0}.av-window{background:color-mix(in srgb, var(--accent-2) 16%, transparent);border:1.5px dashed color-mix(in srgb, var(--accent-2) 70%, transparent);border-radius:11px;height:46px;position:absolute;top:-3px}.av-mark{font:700 10px var(--font-sans);background:var(--card);border:1px solid;border-radius:50%;place-items:center;width:15px;height:15px;font-style:normal;display:grid;position:absolute;top:-7px;right:-6px}[data-tone=found]>.av-mark{color:var(--good-ink)}[data-tone=bad]>.av-mark{color:var(--critical-ink)}.av-cell[data-tone=active],.av-gcell[data-tone=active],.av-chip[data-tone=active],.av-sitem[data-tone=active],.av-qitem[data-tone=active]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 20%, var(--card));box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent)}.av-cell[data-tone=compare],.av-gcell[data-tone=compare],.av-chip[data-tone=compare],.av-sitem[data-tone=compare],.av-qitem[data-tone=compare]{border-color:var(--k-client);background:color-mix(in srgb, var(--k-client) 15%, var(--card))}.av-cell[data-tone=found],.av-gcell[data-tone=found],.av-chip[data-tone=found],.av-sitem[data-tone=found],.av-qitem[data-tone=found]{border-color:var(--good);background:color-mix(in srgb, var(--good) 18%, var(--card))}.av-cell[data-tone=bad],.av-gcell[data-tone=bad],.av-chip[data-tone=bad],.av-sitem[data-tone=bad],.av-qitem[data-tone=bad]{border-color:var(--critical);background:color-mix(in srgb, var(--critical) 14%, var(--card))}.av-cell[data-tone=done],.av-gcell[data-tone=done],.av-chip[data-tone=done],.av-sitem[data-tone=done],.av-qitem[data-tone=done]{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 7%, var(--card));color:var(--muted)}.av-cell[data-tone=window],.av-gcell[data-tone=window],.av-chip[data-tone=window]{border-color:color-mix(in srgb, var(--accent-2) 70%, var(--border));background:color-mix(in srgb, var(--accent-2) 12%, var(--card))}.av-cell[data-tone=muted],.av-gcell[data-tone=muted],.av-chip[data-tone=muted],.av-sitem[data-tone=muted],.av-qitem[data-tone=muted]{opacity:.38}.av-cell[data-tone=pivot],.av-gcell[data-tone=pivot],.av-chip[data-tone=pivot],.av-sitem[data-tone=pivot],.av-qitem[data-tone=pivot]{border-color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 22%, var(--card))}.av-cell[data-tone=new],.av-gcell[data-tone=new],.av-chip[data-tone=new],.av-sitem[data-tone=new],.av-qitem[data-tone=new]{border-color:var(--k-gateway);background:color-mix(in srgb, var(--k-gateway) 15%, var(--card))}.av-gridwrap{gap:3px;display:inline-grid}.av-head{font:600 11px var(--font-mono);color:var(--muted);place-items:center;min-height:22px;padding:0 4px;display:grid}.av-rowhead{justify-content:end;padding-right:6px}.av-gcell{border:1px solid var(--border-strong);background:var(--card);min-width:34px;height:32px;font:600 13px var(--font-mono);border-radius:7px;place-items:center;padding:0 5px;transition:background .25s,border-color .25s,opacity .25s;display:grid;position:relative}.av-gcell[data-size=sm]{font-size:11.5px}.av-gcell[data-size=xs]{font-size:10px}.av-gcell>.av-mark{top:-6px;right:-6px}.av-chips{flex-wrap:wrap;align-items:center;gap:5px;min-height:30px;display:flex}.av-chip{border:1px solid var(--border-strong);background:var(--card);font:13px var(--font-mono);border-radius:8px;align-items:center;gap:5px;padding:3px 9px;transition:background .25s,border-color .25s,opacity .25s;display:inline-flex}.av-chip b{font-weight:700}.av-arrow{color:var(--muted)}.av-stackbox{border:2px solid var(--border-strong);border-top:0;border-radius:0 0 10px 10px;padding:4px;position:relative}.av-stackbox .av-empty{position:absolute;bottom:6px;left:10px}.av-sitem{border:1.5px solid var(--border-strong);background:var(--card);font:600 13px var(--font-mono);border-radius:7px;justify-content:center;align-items:center;transition:background .25s,border-color .25s;display:flex;position:absolute;top:4px;left:6px}.av-top{font:600 10.5px var(--font-sans);color:var(--accent-2);white-space:nowrap;position:absolute;left:calc(100% + 6px)}.av-queuebox{position:relative}.av-qitem{border:1.5px solid var(--border-strong);background:var(--card);height:32px;font:600 13px var(--font-mono);border-radius:7px;justify-content:center;align-items:center;transition:background .25s,border-color .25s;display:flex;position:absolute;top:0;left:0}.av-qlabel{font:600 10.5px var(--font-sans);color:var(--accent-2);position:absolute;top:36px}.av svg{display:block;overflow:visible}.av svg text{font:600 13px var(--font-mono);fill:var(--fg)}.av svg text[data-size=sm]{font-size:11px}.av svg text[data-size=xs]{font-size:9.5px}.av-head-fill{fill:var(--muted)}.av-link{fill:none;stroke:var(--muted);stroke-width:1.8px}.av-lnode rect,.av-tnode circle,.av-gnode circle{fill:var(--card);stroke:var(--border-strong);stroke-width:1.6px;transition:fill .25s,stroke .25s,opacity .25s}.av-ghostrect{fill:none;stroke:var(--border-strong);stroke-dasharray:4 3}.av svg .av-nulltext{font:500 11px var(--font-mono);fill:var(--muted)}.av svg .av-ptrtext{font:700 11px var(--font-mono);fill:var(--accent-2)}.av svg .av-badge{font:600 10.5px var(--font-mono);fill:var(--k-gateway)}.av svg .av-tmark{font:700 11px var(--font-sans)}.av-tedge{stroke:var(--border-strong);stroke-width:1.6px}.av-gedge path{fill:none;stroke:var(--border-strong);stroke-width:1.8px;transition:stroke .25s}.av svg .av-weight{font:600 11px var(--font-mono);fill:var(--muted);paint-order:stroke;stroke:var(--card-2);stroke-width:4px;stroke-linejoin:round}.av-gbadge,.av-gnode[data-tone] .av-gbadge{fill:var(--card);stroke:var(--k-gateway);stroke-width:1.2px}.av svg .av-gbadge-text{font:600 10.5px var(--font-mono);fill:var(--k-gateway)}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=active] :is(rect,circle){stroke:var(--accent);stroke-width:3px;fill:color-mix(in srgb, var(--accent) 20%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=compare] :is(rect,circle){stroke:var(--k-client);stroke-width:2.4px;fill:color-mix(in srgb, var(--k-client) 15%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=found] :is(rect,circle){stroke:var(--good);stroke-width:2.4px;fill:color-mix(in srgb, var(--good) 18%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=bad] :is(rect,circle){stroke:var(--critical);stroke-width:2.4px;fill:color-mix(in srgb, var(--critical) 14%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=done] :is(rect,circle){stroke:color-mix(in srgb, var(--accent) 45%, var(--border));fill:color-mix(in srgb, var(--accent) 9%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=window] :is(rect,circle){stroke:var(--accent-2);fill:color-mix(in srgb, var(--accent-2) 12%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=pivot] :is(rect,circle){stroke:var(--accent-2);stroke-width:2.6px;fill:color-mix(in srgb, var(--accent-2) 22%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=new] :is(rect,circle){stroke:var(--k-gateway);stroke-width:2.4px;fill:color-mix(in srgb, var(--k-gateway) 15%, var(--card))}:is(.av-lnode,.av-tnode,.av-gnode)[data-tone=muted]{opacity:.38}.av-tnode[data-tone=found] .av-tmark,.av-gnode[data-tone=found] .av-tmark{fill:var(--good-ink)}.av-tnode[data-tone=bad] .av-tmark,.av-gnode[data-tone=bad] .av-tmark{fill:var(--critical-ink)}.av-gedge[data-tone=active] path{stroke:var(--accent);stroke-width:3px}.av-gedge[data-tone=found] path{stroke:var(--good);stroke-width:3px}.av-gedge[data-tone=compare] path{stroke:var(--k-client);stroke-width:2.6px}.av-gedge[data-tone=bad] path{stroke:var(--critical);stroke-width:2.6px;stroke-dasharray:5 4}.av-gedge[data-tone=done] path{stroke:color-mix(in srgb, var(--accent) 50%, var(--border));stroke-width:2.4px}.av-gedge[data-tone=muted]{opacity:.3}.av-note{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--card);border-radius:8px;padding:6px 10px;font-size:13.5px}.av-note[data-tone=found]{border-left-color:var(--good)}.av-note[data-tone=bad]{border-left-color:var(--critical)}.av-note[data-tone=pivot]{border-left-color:var(--accent-2)}.av-chips{position:relative}@keyframes av-pop{0%{color:var(--accent-2);transform:scale(1.35)}to{transform:none}}@keyframes av-flash{0%{opacity:.1}to{opacity:1}}.av-pop{animation:.45s cubic-bezier(.2,.8,.3,1) av-pop;display:inline-block}.av svg .av-flash{animation:.45s ease-out av-flash}:root[data-motion=reduce] :is(.av-cell,.av-gcell,.av-chip,.av-sitem,.av-qitem,.algo-code .line,.algo-hl,.algo-vars>div),:root[data-motion=reduce] .algo-code .line:before{transition:none}:root[data-motion=reduce] :is(.av-pop,.av-flash,.algo-vars dd){animation:none}@media (prefers-reduced-motion:reduce){:is(.av-cell,.av-gcell,.av-chip,.av-sitem,.av-qitem,.algo-code .line,.algo-hl){transition:none}:is(.av-pop,.av svg .av-flash,.algo-vars dd){animation:none}}.drill-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);max-width:760px;margin:24px auto 0;padding:28px 30px}.drill-card h2{margin-top:0}.drill-meta{color:var(--muted);justify-content:space-between;align-items:center;margin:0 0 10px;font-size:13px;display:flex}.drill-prompt{margin:0 0 20px;font-size:19px;line-height:1.55}.drill-options{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.drill-option{text-align:left;border:1px solid var(--border);background:var(--card-2);color:var(--fg);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:11px 13px;display:flex}.drill-option:hover:not(:disabled){border-color:var(--accent)}.drill-option:disabled{cursor:default;opacity:1}.drill-option kbd{border:1px solid var(--border-strong);width:22px;height:22px;color:var(--muted);border-radius:6px;flex:none;place-items:center;font-size:12px;display:grid}.drill-option span{flex-direction:column;flex:1;display:flex}.drill-option small{color:var(--muted);font-size:12px}.drill-option.right{border-color:var(--good);background:color-mix(in srgb, var(--good) 12%, transparent)}.drill-option.wrong{border-color:var(--critical);background:color-mix(in srgb, var(--critical) 10%, transparent)}.drill-option.dim:disabled{opacity:.5}.drill-reveal{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.drill-reveal p{margin:0 0 8px}.drill-signals{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.drill-signals>span:first-child{color:var(--muted);font-size:13px}.drill-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.drill-missed{gap:6px;margin:0 0 16px;list-style:none;display:grid;padding:0!important}.drill-missed li{flex-wrap:wrap;gap:4px 10px;display:flex;margin:0!important}.drill-missed li span{color:var(--muted)}
