*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:IBM Plex Sans,ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 20 14.3% 4.1%;--card: 0 0% 100%;--card-foreground: 20 14.3% 4.1%;--popover: 0 0% 100%;--popover-foreground: 20 14.3% 4.1%;--primary: 24 9.8% 10%;--primary-foreground: 60 9.1% 97.8%;--secondary: 60 4.8% 95.9%;--secondary-foreground: 24 9.8% 10%;--muted: 60 4.8% 95.9%;--muted-foreground: 25 5.3% 44.7%;--accent: 60 4.8% 95.9%;--accent-foreground: 24 9.8% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 60 9.1% 97.8%;--border: 20 5.9% 90%;--input: 20 5.9% 90%;--ring: 20 14.3% 4.1%;--radius: .5rem}*{border-color:hsl(var(--border))}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-invert{--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.absolute{position:absolute}.relative{position:relative}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.max-w-none{max-width:none}.resize{resize:both}.border{border-width:1px}.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)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}:root{--sheet: #0C3C66;--sheet-deep: #0A3358;--line: #CFE6F7;--dim: #9EC3E0;--white: #FFFFFF;--signal: #F2C230;--grid-major: rgba(207, 230, 247, .1);--grid-minor: rgba(207, 230, 247, .045);--rule: rgba(207, 230, 247, .35);--sans: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--line);background-color:var(--sheet);background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;-webkit-font-smoothing:antialiased}a{color:inherit}.textlink,.ext,.tb-row a,.article-body a{text-decoration-line:underline}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}img{display:block;max-width:100%;height:auto}h1,h2,h3{color:var(--white);font-weight:600;margin:0}p{margin:0}.sheet{max-width:1240px;margin:16px auto;border:1px solid var(--rule);box-shadow:inset 0 0 0 6px var(--sheet),inset 0 0 0 7px var(--rule),0 24px 60px -30px #000c1c8c;background:#0c3c6680;backdrop-filter:blur(2.5px)}@media(min-width:768px){.sheet{margin:28px auto}}.wrap{padding:0 20px}@media(min-width:768px){.wrap{padding:0 44px}}.band{border-top:1px solid var(--rule)}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:18px;padding-bottom:16px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--white);text-decoration:none}.brand img{width:28px;height:28px;background:#fff;border-radius:4px;padding:2px}.nav-links{display:flex;align-items:center;gap:22px;font-size:15px}.nav-links a{text-decoration:none;color:var(--dim)}.nav-links a:hover{color:var(--white)}.nav-links .hide-sm{display:none}@media(min-width:640px){.nav-links .hide-sm{display:inline}}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:3px;background:var(--white);color:var(--sheet)!important;font-weight:600;text-decoration:none}.btn:hover{background:var(--line)}.btn-sm{padding:6px 12px;font-size:14px}.hero{display:grid;gap:40px;padding-top:44px;padding-bottom:36px}@media(min-width:1024px){.hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;padding-top:64px}}.hero h1{font-size:clamp(2.4rem,5.4vw,4.25rem);line-height:1.02;letter-spacing:-.025em;max-width:15ch}.lede{margin-top:22px;font-size:19px;line-height:1.55;max-width:54ch}.ctas{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}.textlink{font-weight:600;color:var(--white);text-underline-offset:6px;text-decoration-color:var(--rule)}.textlink:hover{text-decoration-color:var(--white)}.hero-quote{margin-top:36px;padding-left:18px;border-left:2px solid var(--signal);max-width:52ch}.hero-quote blockquote{margin:0;font-size:19px;line-height:1.5;color:var(--white)}.cite{margin-top:8px;font-size:14px;color:var(--dim)}.cite strong{color:var(--line);font-weight:600}.hero-side{display:flex;flex-direction:column;gap:28px;justify-content:space-between}.mono-label{font-family:var(--mono);font-size:12.5px;color:var(--dim)}.index{border:1px solid var(--rule);background:#0a33588c}.index-head{padding:8px 14px;border-bottom:1px solid var(--rule)}.index ul{list-style:none;margin:0;padding:0}.index li+li{border-top:1px solid rgba(207,230,247,.18)}.index a{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:center;padding:10px 14px;text-decoration:none}.index a:hover .index-name{text-decoration:underline;text-underline-offset:4px}.thumb{width:52px;height:38px;border-radius:2px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center}.thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.thumb.contain img{-o-object-fit:contain;object-fit:contain}.index-name{font-weight:600;color:var(--white);font-size:15px;line-height:1.3}.index-line{font-size:13.5px;color:var(--dim);line-height:1.35}.titleblock{border:1.5px solid var(--line);font-size:14px;background:#0a3358b3}.tb-row{display:grid;grid-template-columns:96px 1fr;border-top:1px solid var(--rule)}.tb-row>*{padding:7px 12px}.tb-row>.mono-label{border-right:1px solid var(--rule);display:flex;align-items:center}.tb-title{display:flex;align-items:center;gap:12px;padding:12px}.tb-title img{width:34px;height:34px;background:#fff;border-radius:4px;padding:3px}.tb-title .name{font-size:20px;font-weight:600;color:var(--white);line-height:1.15}.tb-title .sub{font-size:13px;color:var(--dim)}.tb-drawn{display:flex;align-items:center;gap:10px}.tb-drawn img{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover;filter:grayscale(1);border:1px solid var(--rule)}.tb-row a{color:var(--white);text-underline-offset:3px;text-decoration-color:var(--rule);word-break:break-word}.detail{padding-top:48px;padding-bottom:52px;scroll-margin-top:12px}@media(min-width:1024px){.detail{padding-top:60px;padding-bottom:64px}}.detail-head{display:grid;gap:18px 48px;align-items:start}@media(min-width:1024px){.detail-head{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.detail h2{font-size:clamp(2rem,3.6vw,2.6rem);line-height:1.05;letter-spacing:-.02em}.meta{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.tag{font-family:var(--mono);font-size:12.5px;color:var(--line);border:1px solid var(--rule);border-radius:2px;padding:2px 8px}.ext{font-weight:500;color:var(--white);text-underline-offset:4px;text-decoration-color:var(--rule)}.ext:hover{text-decoration-color:var(--white)}.summary{font-size:17px;line-height:1.6;max-width:62ch}.summary p+p{margin-top:12px}.drawing{position:relative;margin-top:32px;display:flex;flex-direction:column}.drawing .plate-col{order:-1;margin-bottom:22px}.callouts.left:before{content:"What I built";display:block;font-family:var(--sans);font-weight:600;font-size:15px;color:var(--white);margin-bottom:4px}.drawing .plate-col{position:relative}.plate{position:relative;background:#fff;border:1px solid var(--line);border-radius:2px;padding:10px;box-shadow:0 18px 40px -24px #0009}.plate:before,.plate:after{content:"";position:absolute;width:14px;height:14px;border-color:var(--line);border-style:solid;pointer-events:none}.plate:before{top:-8px;left:-8px;border-width:1px 0 0 1px}.plate:after{bottom:-8px;right:-8px;border-width:0 1px 1px 0}.spot{position:relative}.dot{position:absolute;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:var(--signal);border:2px solid var(--sheet);box-shadow:0 0 0 1px var(--signal);display:none}.callouts{list-style:none;margin:0;padding:0;display:grid;gap:8px}.callouts.right{margin-top:8px}.callouts li{font-family:var(--mono);font-size:13.5px;line-height:1.45;color:var(--line);padding-left:18px;position:relative}.callouts li:before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1px;background:var(--line)}.leaders{display:none}@media(min-width:1024px){.drawing{display:grid;grid-template-columns:210px minmax(0,1fr) 210px;gap:0 44px;align-items:stretch}.drawing .plate-col{order:0;margin-bottom:0}.callouts.left:before{display:none}.callouts,.callouts.right{margin:0;display:flex;flex-direction:column;justify-content:space-around;gap:20px;padding:12px 0}.callouts li{padding-left:0}.callouts li:before{display:none}.callouts.left li{text-align:right}.dot{display:block}.leaders{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.leaders polyline{fill:none;stroke:var(--line);stroke-width:1}.leaders polyline.halo{stroke:var(--sheet);stroke-width:3.5}.leaders.draw polyline{transition:stroke-dashoffset .9s cubic-bezier(.3,.6,.2,1)}}.notes-h{margin:0 0 6px;font-family:var(--sans);font-weight:600;font-size:15px;color:var(--white)}.notes ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 28px}.notes li{font-family:var(--mono);font-size:13.5px;line-height:1.45;color:var(--line);padding-left:18px;position:relative}.notes li:before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1px;background:var(--line)}.drawing-note{margin-top:26px;display:grid;gap:20px 48px}@media(min-width:1024px){.drawing-note{grid-template-columns:210px minmax(0,1fr) 210px}.drawing-note>*{grid-column:2}}.quote blockquote{margin:0;font-size:16px;line-height:1.55;color:var(--white)}.pb-photo{width:78%;margin:0 auto}.code{margin:10px 0 0;background:var(--sheet-deep);color:#dce9f5;border-radius:2px;font-family:var(--mono);font-size:clamp(11px,.95vw,12.5px);line-height:1.7;padding:14px 16px;overflow-x:auto;white-space:pre}.code .c{color:var(--dim)}.code .ok{color:var(--signal)}.bindery{position:relative;padding-bottom:16%}.bindery .ui{border:1px solid #d9dee3}.fan{position:absolute;right:-2%;bottom:0;width:44%;aspect-ratio:5 / 4}.fan img{position:absolute;width:34%;background:#fff;box-shadow:0 6px 16px #00000040;border-radius:2px}.fan .l{left:8%;top:14%;transform:rotate(-6deg)}.fan .r{right:8%;top:10%;transform:rotate(6deg)}.fan .m{left:50%;top:20%;transform:translate(-50%)}.harmony{background:#e1ded5;display:flex;align-items:center;justify-content:center;padding:6px}.feather{-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent);-webkit-mask-composite:source-in,xor;mask-composite:intersect}.harmony .board{width:66%}.harmony .phone{width:32%;margin-left:-2%}.plate.chrono{padding:0;overflow:hidden}.small-detail{display:grid;gap:24px 48px;align-items:center;padding-top:44px;padding-bottom:48px}@media(min-width:900px){.small-detail{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.small-detail h2{font-size:1.75rem;letter-spacing:-.015em}.ba{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ba figure{margin:0;position:relative}.ba img{width:100%;aspect-ratio:4 / 3;-o-object-fit:cover;object-fit:cover}.ba figcaption{position:absolute;left:8px;bottom:8px;font-family:var(--mono);font-size:12px;background:var(--sheet);color:var(--white);padding:2px 8px;border-radius:2px}.section{padding-top:52px;padding-bottom:56px}.section h2{font-size:clamp(2rem,3.6vw,2.6rem);letter-spacing:-.02em;line-height:1.05}.section-intro{margin-top:12px;font-size:17px;color:var(--dim);max-width:62ch}.erp{margin-top:36px;display:grid;gap:28px 48px;align-items:center}@media(min-width:1024px){.erp{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.erp h3{font-size:21px}.erp .sub{margin-top:2px;font-size:14px;color:var(--dim);font-family:var(--mono)}.erp p.body{margin-top:14px;font-size:17px;max-width:58ch}.erp .plate{padding:6px}.trio{margin-top:40px;padding-top:28px;border-top:1px solid var(--rule);display:grid;gap:24px 40px}@media(min-width:768px){.trio{grid-template-columns:repeat(3,minmax(0,1fr))}}.trio h3{font-size:16px}.trio p{margin-top:6px;font-size:15px;color:var(--dim)}.quotes{margin-top:36px;padding-top:28px;border-top:1px solid var(--rule);display:grid;gap:28px 40px}@media(min-width:768px){.quotes{grid-template-columns:1fr 1fr}}.quotes blockquote{margin:0;font-size:17px;line-height:1.55;color:var(--white)}.schedule{margin-top:28px;width:100%;border-collapse:collapse;font-size:15px}.schedule th,.schedule td{text-align:left;vertical-align:top;padding:10px 14px;border:1px solid var(--rule)}.schedule thead th{font-family:var(--mono);font-weight:400;font-size:12.5px;color:var(--dim);background:#0a335899}.schedule tbody th{color:var(--white);font-weight:600;width:30%}.schedule td{color:var(--line)}@media(min-width:1024px){.schedule-wrap{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}}.platforms{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:15px;color:var(--dim)}.platforms strong{color:var(--white);font-weight:600;width:100%}@media(min-width:640px){.platforms strong{width:auto}}.platforms a{display:inline-flex;align-items:center;gap:7px;text-decoration:none}.platforms a:hover{color:var(--white)}.platforms svg{width:16px;height:16px;background:#fff;border-radius:3px;padding:2px;box-sizing:content-box}.writing-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}.articles{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:0 32px}@media(min-width:768px){.articles{grid-template-columns:repeat(3,minmax(0,1fr))}}.articles li{border-top:1px solid var(--rule)}.articles a{display:block;padding:16px 0 20px;text-decoration:none}.articles time{font-family:var(--mono);font-size:12.5px;color:var(--dim)}.articles h3{margin-top:6px;font-size:17px;line-height:1.35}.articles a:hover h3{text-decoration:underline;text-underline-offset:4px}.articles p{margin-top:6px;font-size:15px;color:var(--dim)}.contact{display:grid;gap:28px 48px;align-items:end;padding-top:56px;padding-bottom:60px}@media(min-width:1024px){.contact{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}.contact h2{font-size:clamp(2.2rem,4.6vw,3.4rem);line-height:1.02;letter-spacing:-.025em;max-width:14ch}.contact p{margin-top:16px;font-size:18px;max-width:48ch}.contact-lines a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--white)}.contact-lines .email{font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:600;word-break:break-all}.contact-lines .phone{margin-top:10px;font-size:18px}.contact-lines a:hover{color:var(--signal)}.social{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:15px}.social a{color:var(--dim);text-decoration:none}.social a:hover{color:var(--white)}footer.wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-top:18px;padding-bottom:28px;font-size:13.5px;color:var(--dim)}footer a{color:var(--dim);text-decoration:none}footer a:hover{color:var(--white)}.page{padding-top:44px;padding-bottom:64px}.page-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}.page-head h1,.article-head h1{font-size:clamp(2.2rem,4.6vw,3.2rem);line-height:1.05;letter-spacing:-.025em}.rss{display:inline-flex;align-items:center;gap:6px}.article-list{list-style:none;margin:28px 0 0;padding:0;max-width:820px}.article-list>li{border-top:1px solid var(--rule)}.article-list>li:last-child{border-bottom:1px solid var(--rule)}.article-list a{display:block;padding:18px 0 20px;text-decoration:none}.article-list h2{margin-top:6px;font-size:21px;line-height:1.3}.article-list a:hover h2{text-decoration:underline;text-underline-offset:4px}.article-list .desc{margin-top:6px;font-size:16px;color:var(--dim);max-width:68ch}.tags{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.article{max-width:760px;margin:0 auto}.article-head .mono-label{margin-bottom:10px}.article-head .lede{margin-top:16px;font-size:19px;color:var(--dim)}.article-head .tags{margin-top:16px}.article-body{margin-top:36px;padding-top:28px;border-top:1px solid var(--rule);font-size:17px;line-height:1.7}.article-foot{margin-top:44px;padding-top:18px;border-top:1px solid var(--rule)}.article-body{--tw-prose-invert-body: var(--line);--tw-prose-invert-headings: var(--white);--tw-prose-invert-lead: var(--dim);--tw-prose-invert-links: var(--white);--tw-prose-invert-bold: var(--white);--tw-prose-invert-counters: var(--dim);--tw-prose-invert-bullets: var(--dim);--tw-prose-invert-hr: var(--rule);--tw-prose-invert-quotes: var(--white);--tw-prose-invert-quote-borders: var(--signal);--tw-prose-invert-captions: var(--dim);--tw-prose-invert-code: var(--white);--tw-prose-invert-th-borders: var(--rule);--tw-prose-invert-td-borders: rgba(207, 230, 247, .18)}.article-body a{text-decoration-color:var(--rule);text-underline-offset:4px}.article-body a:hover{text-decoration-color:var(--white)}.article-body h2,.article-body h3{font-weight:600;letter-spacing:-.01em}.article-body :not(pre)>code{font-family:var(--mono);font-weight:400;font-size:.88em;background:var(--sheet-deep);border:1px solid var(--rule);border-radius:2px;padding:1px 5px}.article-body :not(pre)>code:before,.article-body :not(pre)>code:after{content:none}.article-body pre{background:var(--sheet-deep)!important;border:1px solid var(--rule);border-radius:2px;font-family:var(--mono);font-size:14px;line-height:1.65}.article-body img{border:1px solid var(--line);border-radius:2px;background:#fff}.not-found{min-height:50vh;display:flex;flex-direction:column;justify-content:center}.not-found h1{font-size:clamp(2.2rem,4.6vw,3.2rem);letter-spacing:-.025em;line-height:1.05;margin-top:8px}.not-found p.body{margin-top:14px;font-size:18px;max-width:48ch}.not-found .ctas{margin-top:24px}
