/*
! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{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{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:after,:before{--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-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:rgba(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: }::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-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:rgba(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: }.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:"\201C""\201D""\2018""\2019";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:rgba(17,24,39,.1);--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:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--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-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.visible{visibility:visible}.fixed{position:fixed}.sticky{position:sticky}.mx-auto{margin-left:auto;margin-right:auto}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.mt-16{margin-top:4rem}.mb-3{margin-bottom:.75rem}.mt-2{margin-top:.5rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-56{height:14rem}.max-h-96{max-height:24rem}.max-h-full{max-height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-none{max-width:none}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:2rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-10{gap:2.5rem}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:9999px}.rounded-2xl{border-radius:1rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-6{padding:1.5rem}.p-4{padding:1rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-20{padding-bottom:5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.font-burtons{font-family:burtons}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xs{font-size:.75rem;line-height:1rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-5xl{font-size:3rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-tight{line-height:1.25}.leading-8{line-height:2rem}.text-teal-700{--tw-text-opacity:1;color:rgb(15 118 110/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-teal-600{--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}:root{--paper:#f4f2ec;--surface:#fffefa;--ink:#14212b;--muted:#63707a;--line:#dce0db;--blue:#2563eb;--blue-dark:#123b8a;--lime:#c6fa54;--warm:#ffb79d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.portfolio-shell{overflow:hidden}.section-wrap,.site-header{width:min(1180px,calc(100% - 48px));margin:0 auto}.site-header{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font:800 1.25rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.08em}.brand span{color:var(--blue)}.site-header nav{display:flex;gap:24px;font-size:.86rem;font-weight:650;color:#44515b}.site-header nav button{border:0;padding:0;background:none;color:inherit;font:inherit;cursor:pointer}.site-header nav a:hover{color:var(--blue)}.header-actions{display:flex;align-items:center;gap:18px}.header-resume{display:inline-flex;align-items:center;gap:5px;color:var(--blue-dark);font-size:.8rem;font-weight:750}.header-resume:hover{color:var(--blue)}.header-contact,.source-link{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:700;color:var(--blue-dark)}.button svg,.contact-email svg,.header-contact svg,.source-link svg{font-size:1.1em;transition:transform .18s ease}.button:hover svg,.contact-email:hover svg,.header-contact:hover svg,.source-link:hover svg{transform:translate(3px,-3px)}.hero{min-height:680px;padding:88px 0 68px;display:grid;grid-template-columns:1.12fr .88fr;gap:74px}.eyebrow,.hero{align-items:center}.eyebrow{display:flex;gap:9px;margin:0 0 18px;color:#586673;font:700 .69rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.11em;text-transform:uppercase}.eyebrow span{width:25px;height:2px;background:var(--blue);display:inline-block}.build-grid h2,.contact-section h2,.experience-section h2,.hero h1,.section-heading h2,.stack-section h2{margin:0;letter-spacing:-.066em;line-height:.98}.hero h1{max-width:730px;font-size:clamp(3.2rem,6.8vw,6.5rem)}.hero-lead{max-width:615px;margin:28px 0 0;color:#4b5a65;font-size:clamp(1.03rem,1.7vw,1.22rem);line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button{min-height:48px;display:inline-flex;align-items:center;gap:11px;padding:0 19px;border-radius:999px;font-size:.9rem;font-weight:750;transition:transform .18s ease,background .18s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ink);color:#fff}.button-primary:hover{background:#293a47}.button-secondary{border:1px solid #bfc8c4;color:var(--ink)}.button-secondary:hover{background:var(--surface)}.hero-meta{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px 23px;color:#63707a;font:600 .78rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.hero-meta span{display:inline-flex;align-items:center;gap:6px}.hero-portrait-wrap{position:relative;display:grid;place-items:center;min-height:510px}.portrait-frame{position:relative;z-index:2;width:min(100%,385px);aspect-ratio:4/5;overflow:hidden;border-radius:190px 190px 26px 26px;background:#d9e7dd;box-shadow:20px 22px 0 var(--blue-dark)}.portrait{-o-object-fit:cover;object-fit:cover;-o-object-position:center 22%;object-position:center 22%}.portrait-orbit{position:absolute;border:1px dashed #9ab9f8;border-radius:50%}.orbit-one{width:470px;height:470px}.orbit-two{width:555px;height:355px;transform:rotate(-27deg);border-color:#cdd3cc}.portrait-note{position:absolute;z-index:3;bottom:18px;left:-9px;min-width:174px;padding:13px 15px;color:#fff;background:var(--blue);box-shadow:8px 8px 0 var(--lime)}.portrait-note span{display:block;color:#bfdbfe;font:700 .6rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}.portrait-note strong{display:block;margin-top:5px;font-size:.82rem}.proof-band{background:var(--ink);color:#fff}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr)}.proof-item{min-height:235px;padding:34px 32px;border-right:1px solid #40515d}.proof-item:last-child{border-right:0}.proof-item>span{color:var(--lime);font:700 .66rem ui-monospace,SFMono-Regular,Menlo,monospace}.proof-item p{margin:38px 0 6px;color:#aab8c2;font-size:.79rem}.proof-item strong{display:block;max-width:230px;font-size:1.18rem;letter-spacing:-.035em}.proof-item small{display:block;max-width:270px;margin-top:12px;color:#b5c2ca;font-size:.78rem;line-height:1.55}.work-section{padding:132px 0 120px}.section-heading{display:grid;grid-template-columns:.88fr 1.12fr;-moz-column-gap:50px;column-gap:50px;align-items:end;margin-bottom:70px}.section-heading .eyebrow{grid-row:1/span 2;align-self:start}.build-grid h2,.contact-section h2,.experience-section h2,.section-heading h2,.stack-section h2{font-size:clamp(2.4rem,4.6vw,4.5rem)}.section-heading>p:last-child{max-width:520px;margin:18px 0 0;color:var(--muted);line-height:1.7}.case-study-list{display:grid;gap:104px}.case-study{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.case-study-2 .project-media{order:2}.case-study-2 .case-copy{order:1}.project-media{position:relative;min-height:430px;overflow:hidden;border-radius:18px}.project-media-esp32{background:#10252b;display:grid;place-items:center;isolation:isolate}.sensor-board{position:relative;width:72%;min-height:235px;padding:26px;border:1px solid #5bc6b2;border-radius:14px;background:#173941;color:#d9fff5;box-shadow:14px 14px 0 #09171b}.sensor-chip{display:inline-block;padding:6px 9px;border-radius:5px;background:#62d7be;color:#09211f;font:800 .65rem ui-monospace,monospace}.sensor-board i{position:absolute;width:9px;height:9px;border-radius:50%;background:#f2bd55;right:24px}.sensor-board i:first-of-type{top:28px}.sensor-board i:nth-of-type(2){top:49px;background:#7be49b}.sensor-board i:nth-of-type(3){top:70px;background:#e97878}.sensor-board b{display:block;margin-top:42px;color:#8db8b5;font:700 .62rem ui-monospace,monospace;letter-spacing:.08em}.sensor-board strong{display:block;margin-top:7px;font-size:3.2rem;letter-spacing:-.08em}.sensor-board small{color:#8db8b5}.signal{position:absolute;border:1px solid #5bc6b2;border-left:0;border-bottom:0;border-radius:0 90px 0 0;opacity:.5}.signal-one{width:180px;height:100px;right:8%;top:16%;transform:rotate(20deg)}.signal-two{width:260px;height:140px;right:-5%;top:8%;transform:rotate(20deg)}.sensor-pulse{position:absolute;bottom:13%;left:13%;width:7px;height:7px;border-radius:50%;background:#62d7be;box-shadow:0 0 0 9px #62d7be30,0 0 0 18px #62d7be15}.project-media-jarvis{background:#1f1730;display:grid;place-items:center;isolation:isolate}.jarvis-orb{width:170px;height:170px;display:grid;place-items:center;align-content:center;gap:8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d2b4ff,#7250b9 48%,#24183e 72%);color:#fff;box-shadow:0 0 0 20px #a176d51c,0 0 0 42px #a176d50d,0 0 80px #a176d58c;text-align:center}.jarvis-orb span{font:700 .64rem ui-monospace,monospace;letter-spacing:.14em}.jarvis-orb strong{font-size:.68rem;letter-spacing:.16em;color:#eadfff}.jarvis-card{position:absolute;right:11%;bottom:16%;display:grid;gap:5px;padding:16px 18px;border:1px solid #ae91e4;border-radius:10px;background:#302348;color:#fff;box-shadow:10px 10px 0 #120d1e}.jarvis-card small,.jarvis-card span{color:#c0acd9;font-size:.65rem}.jarvis-card b{font-size:1.15rem}.jarvis-wave{position:absolute;left:13%;bottom:22%;display:flex;align-items:center;gap:5px}.jarvis-wave i{width:4px;height:18px;border-radius:99px;background:#c9a9ff}.jarvis-wave i:nth-child(2),.jarvis-wave i:nth-child(6){height:31px}.jarvis-wave i:nth-child(3),.jarvis-wave i:nth-child(5){height:45px}.jarvis-wave i:nth-child(4){height:58px}.project-media-aasha{background:#50164f}.project-screenshot{-o-object-fit:cover;object-fit:cover;-o-object-position:65% top;object-position:65% top;transition:transform .5s ease}.case-study:hover .project-screenshot{transform:scale(1.035)}.project-media-putt{background:#88cb78;isolation:isolate}.putt-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);opacity:.35;transform:rotate(-10deg) scale(1.25)}.putt-grid span{border:1px solid #3e7954}.putt-course-card{position:absolute;z-index:2;display:flex;align-items:center;gap:16px;width:72%;left:14%;top:21%;padding:23px;background:#fffdf7;border:3px solid var(--ink);box-shadow:10px 10px 0 #28533a}.putt-course-card img{-o-object-fit:contain;object-fit:contain}.media-label,.putt-course-card small,.putt-course-card strong{display:block}.media-label{color:#66727b;font:700 .6rem/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase}.putt-course-card strong{margin:5px 0;font-size:1.4rem;letter-spacing:-.05em}.putt-course-card small{color:#4e5b64;font-size:.72rem}.putt-ball{position:absolute;z-index:2;width:63px;height:63px;right:16%;bottom:18%;border-radius:50%;background:#fff;box-shadow:inset -8px -8px 0 #d9dfd9,8px 8px 0 #315c3b}.project-media-codescroll{display:grid;place-items:center;background:#111b25;padding:30px}.editor-window{width:100%;overflow:hidden;border:1px solid #304454;border-radius:10px;background:#192630;box-shadow:15px 17px 0 #0a1219}.editor-dots{display:flex;gap:6px;padding:12px;background:#243442}.editor-dots i{width:8px;height:8px;border-radius:50%;background:#f5ba4f}.editor-dots i:nth-child(2){background:#74cf7e}.editor-dots i:nth-child(3){background:#ec6c68}.editor-body{display:grid;grid-template-columns:110px 1fr;min-height:308px}.editor-body aside{display:flex;flex-direction:column;gap:14px;padding:21px 13px;border-right:1px solid #304454;color:#9eb2c0;font-size:.68rem}.editor-body aside span{color:#6f8595;font:600 .55rem ui-monospace,SFMono-Regular,Menlo,monospace}.editor-body aside b{font-weight:500}.editor-feed{padding:30px;color:#eff9ff}.editor-feed .media-label{color:#9eb2c0;margin:18px 0 8px}.editor-feed strong{font-size:clamp(1.2rem,2vw,1.85rem);line-height:1.15;letter-spacing:-.045em}.feed-lines{margin-top:29px}.feed-lines i{display:block;height:8px;margin:10px 0;border-radius:99px;background:#395363}.feed-lines i:first-child{width:88%}.feed-lines i:nth-child(2){width:67%}.feed-lines i:nth-child(3){width:76%}.case-index{margin:0 0 15px;color:var(--blue);font:700 .7rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.case-index span{margin-left:13px;color:#78858d;text-transform:uppercase}.case-copy h3{margin:0;font-size:clamp(2.1rem,3.6vw,3.45rem);letter-spacing:-.06em}.case-description{margin:17px 0 0;color:#45535d;font-size:1.03rem;line-height:1.68}.case-detail{margin:27px 0 0;display:grid;gap:17px}.case-detail div{padding-left:15px;border-left:2px solid var(--blue)}.case-detail dt{color:#64717a;font:700 .64rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase}.case-detail dd{margin:6px 0 0;color:#42515b;font-size:.86rem;line-height:1.55}.outcome-list{padding:0;margin:23px 0;list-style:none}.outcome-list li{position:relative;padding:7px 0 7px 19px;color:#3d4c56;font-size:.84rem;line-height:1.5}.outcome-list li:before{content:"";position:absolute;left:0;top:15px;width:7px;height:7px;border:1px solid var(--blue);border-radius:50%}.case-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding-top:20px;border-top:1px solid var(--line)}.tech-list{display:flex;flex-wrap:wrap;gap:6px}.stack-cloud span,.tech-list span{padding:7px 9px;border:1px solid #cad5d0;border-radius:5px;background:var(--surface);color:#53616a;font:650 .66rem/1 ui-monospace,SFMono-Regular,Menlo,monospace}.source-link{white-space:nowrap}.project-feedback{margin:20px 0 0;padding:14px 16px;border-left:3px solid var(--blue);background:#edf3f0;color:#51616a;font-size:.78rem;line-height:1.55}.build-section{padding:106px 0;background:#e0eceb}.build-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px}.build-grid>div>p:last-child{max-width:430px;margin:24px 0 0;color:#53636b;line-height:1.7}.build-steps{margin:0;padding:0;list-style:none;border-top:1px solid #b9cdcb}.build-steps li{display:grid;grid-template-columns:68px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid #b9cdcb}.build-steps>li>span{color:var(--blue-dark);font:700 .68rem ui-monospace,SFMono-Regular,Menlo,monospace}.build-steps strong{font-size:1.03rem}.build-steps p{margin:7px 0 0;color:#5c6a71;font-size:.85rem;line-height:1.55}.more-work{padding:0 0 125px}.more-work-list,.oss-list{border-top:1px solid var(--line)}.more-work-item,.oss-item{display:grid;grid-template-columns:48px 1fr auto;gap:22px;align-items:center;padding:23px 0;border-bottom:1px solid var(--line)}.more-work-number{color:var(--blue);font:700 .68rem ui-monospace,SFMono-Regular,Menlo,monospace}.more-work-item h3,.oss-item h3{margin:0;font-size:1.05rem;letter-spacing:-.025em}.more-work-item p,.oss-item p{max-width:620px;margin:6px 0 8px;color:#58666f;font-size:.83rem;line-height:1.5}.more-work-tech{color:#687981;font:650 .65rem ui-monospace,SFMono-Regular,Menlo,monospace}.more-work-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:13px}.more-work-links a{display:inline-flex;align-items:center;gap:4px;color:var(--blue-dark);font-size:.75rem;font-weight:750}.more-work-links a:hover{color:var(--blue)}.oss-section{padding:0 0 115px}.experience-section{padding:128px 0}.section-heading.compact{margin-bottom:52px}.experience-list{border-top:1px solid var(--line)}.experience-item{display:grid;grid-template-columns:220px 1fr;gap:42px;padding:31px 0;border-bottom:1px solid var(--line)}.experience-period{color:#6d7981;font:650 .74rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.experience-period span{display:inline-block;margin:0 0 0 9px;padding:3px 6px;color:#315e16;background:var(--lime);font-size:.57rem;letter-spacing:.06em;text-transform:uppercase}.experience-item h3{margin:0;font-size:1.2rem;letter-spacing:-.03em}.company-line{margin:5px 0 14px!important;color:var(--blue-dark)!important;font-size:.84rem!important}.experience-item p{max-width:660px;margin:0;color:#53616a;font-size:.9rem;line-height:1.65}.experience-item ul{margin:13px 0 0;padding-left:18px;color:#66747c;font-size:.83rem;line-height:1.65}.stack-section{padding:95px 0;color:#fff;background:#1a2b38}.stack-section .eyebrow{color:#b3c4cd}.stack-section .eyebrow span{background:var(--lime)}.stack-section h2{max-width:720px}.stack-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:42px}.stack-cloud span{color:#d7e4e4;border-color:#40515d;background:#233947}.stack-cloud span:nth-child(3n){color:#17230e;border-color:var(--lime);background:var(--lime)}.contact-section{padding:130px 0;display:grid;grid-template-columns:1.05fr .95fr;gap:50px}.contact-section>div>p:last-child{max-width:560px;margin:23px 0 0;color:#5b6871;line-height:1.7}.contact-links{align-self:end}.contact-email{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:15px;border-bottom:2px solid var(--ink);font-size:clamp(1.2rem,2.2vw,1.75rem);font-weight:750;letter-spacing:-.035em}.contact-links>div{display:flex;gap:23px;margin-top:17px}.contact-links>div a{display:inline-flex;align-items:center;gap:7px;color:#52616b;font-size:.85rem;font-weight:700}.contact-links>div a:hover{color:var(--blue)}.site-footer{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:23px 0 33px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;color:#79858b;font:600 .67rem ui-monospace,SFMono-Regular,Menlo,monospace}@media (max-width:800px){.section-wrap,.site-footer,.site-header{width:min(100% - 32px,1180px)}.site-header{min-height:72px}.header-contact{display:none}.site-header nav{gap:16px;font-size:.77rem}.hero{min-height:0;padding:65px 0 72px;grid-template-columns:1fr;gap:54px}.hero-portrait-wrap{min-height:450px;order:-1}.portrait-frame{width:min(84vw,360px)}.orbit-one{width:385px;height:385px}.orbit-two{width:440px;height:290px}.hero h1{font-size:clamp(3rem,13vw,4.5rem)}.proof-grid{grid-template-columns:1fr}.proof-item{min-height:auto;padding:26px 16px;border-right:0;border-bottom:1px solid #40515d}.proof-item p{margin-top:16px}.build-grid,.case-study,.contact-section,.section-heading{grid-template-columns:1fr;gap:28px}.section-heading .eyebrow{grid-row:auto}.experience-section,.work-section{padding:83px 0}.section-heading{margin-bottom:46px}.case-study-list{gap:75px}.case-study-2 .case-copy,.case-study-2 .project-media{order:0}.project-media{min-height:335px}.case-footer{align-items:flex-start;flex-direction:column}.experience-item{grid-template-columns:1fr;gap:13px}.contact-section{padding:88px 0}.site-footer{flex-direction:column}.editor-body{min-height:270px}.editor-feed{padding:22px}.more-work{padding-bottom:83px}.more-work-item,.oss-item{grid-template-columns:32px 1fr;gap:13px}.more-work-links{grid-column:2;justify-content:flex-start}}@media (max-width:450px){.hero-meta{display:grid;gap:10px}.portrait-note{left:5px}.project-media{min-height:285px}.project-media-codescroll{padding:17px}.editor-body{grid-template-columns:84px 1fr}.editor-body aside{padding:15px 9px;font-size:.58rem}.editor-feed strong{font-size:1.16rem}.putt-course-card{width:80%;left:10%;padding:14px}.putt-course-card img{width:58px;height:58px}.case-copy h3{font-size:2.3rem}.contact-email{font-size:1.02rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity))}.hover\:text-teal-600:hover{--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-teal-600{--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity))}.group:hover .group-hover\:underline{text-decoration-line:underline}.prose-a\:text-teal-600 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity))}.prose-blockquote\:border-teal-500 :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-border-opacity:1;border-color:rgb(20 184 166/var(--tw-border-opacity))}.prose-code\:text-teal-600 :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity))}.dark .dark\: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)}.dark .dark\:border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.dark .dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.dark .dark\:bg-teal-900{--tw-bg-opacity:1;background-color:rgb(19 78 74/var(--tw-bg-opacity))}.dark .dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark .dark\:bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.dark .dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .dark\:text-teal-300{--tw-text-opacity:1;color:rgb(94 234 212/var(--tw-text-opacity))}.dark .dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark .dark\:text-teal-400{--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity))}.dark .dark\:text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.dark .dark\:text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.dark .dark\:hover\:text-teal-400:hover,.dark .group:hover .dark\:group-hover\:text-teal-400{--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity))}.dark .prose-headings\:dark\:text-white :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .prose-p\:dark\:text-gray-200 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.dark .dark\:prose-a\:text-teal-400 :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity))}.dark .prose-blockquote\:dark\:text-gray-300 :is(:where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark .prose-strong\:dark\:text-white :is(:where(strong):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark .dark\:prose-code\:text-teal-400 :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity))}.dark .prose-li\:dark\:text-gray-200 :is(:where(li):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.dark .prose-hr\:dark\:border-gray-700 :is(:where(hr):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-40{padding-left:10rem;padding-right:10rem}}