@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-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;--tw-content:"";--tw-leading:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-200:oklch(88.5% .062 18.334);--color-yellow-200:oklch(94.5% .129 101.54);--color-green-200:oklch(92.5% .084 155.995);--color-blue-200:oklch(88.2% .059 254.128);--color-pink-200:oklch(89.9% .061 343.231);--color-gray-200:oklch(92.8% .006 264.531);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-base:var(--t-body);--text-base--line-height: 1.5 ;--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 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-primary:var(--primary);--color-body:var(--body);--color-border:var(--text);--color-light:var(--text);--color-gray:var(--text-dim);--color-dark:var(--body-2);--color-card:var(--card);--color-text:var(--text);--color-text-light:var(--text);--font-primary:var(--font-sans);--text-h1:var(--t-h1);--text-h2:var(--t-h2);--text-h3:var(--t-h3);--text-h4:var(--t-h4);--text-h5:var(--t-lead);--text-h6:var(--t-mono);--breakpoint-xs:23.375rem;--breakpoint-s:35rem;--breakpoint-m:47.5rem;--breakpoint-l:56.25rem;--breakpoint-w:68.75rem}}@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,ui-sans-serif, system-ui, 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;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{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{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}html{scroll-behavior:smooth}@media(max-width:35rem){html{scroll-behavior:auto}}body{background-color:var(--color-body);font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height));--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed);--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal);color:var(--color-text-light)}h1,h2,h3,h4,h5,h6{--tw-leading:var(--leading-tight);line-height:var(--leading-tight);--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold);color:var(--text);scroll-margin-top:110px}h1,.h1{font-size:var(--text-h1)}h2,.h2{font-size:var(--text-h2)}h3,.h3{font-size:var(--text-h3)}h4,.h4{font-size:var(--text-h4)}h5,.h5{font-size:var(--text-h5)}h6,.h6{font-size:var(--text-h6)}b,strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}code:after{content:var(--tw-content);--tw-border-style:none;border-style:none}blockquote>p{margin-block:calc(var(--spacing) * 0)!important}input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-color:#6a7282;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is(input:where([type=text]),input:where(:not([type])),input:where([type=email]),input:where([type=url]),input:where([type=password]),input:where([type=number]),input:where([type=date]),input:where([type=datetime-local]),input:where([type=month]),input:where([type=search]),input:where([type=tel]),input:where([type=time]),input:where([type=week]),select:where([multiple]),textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#155dfc;outline:2px solid #0000}input::placeholder,textarea::placeholder{color:#6a7282;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-date-and-time-value{text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}select:where([multiple]),select:where([size]:not([size="1"])){background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}input:where([type=checkbox]),input:where([type=radio]){appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;color:#155dfc;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;border-color:#6a7282;flex-shrink:0;width:1rem;height:1rem;padding:0;display:inline-block}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input:where([type=checkbox]):checked,input:where([type=radio]):checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=checkbox]):checked{appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}@media(forced-colors:active){input:where([type=radio]):checked{appearance:auto}}input:where([type=checkbox]):checked:hover,input:where([type=checkbox]):checked:focus,input:where([type=radio]):checked:hover,input:where([type=radio]):checked:focus{background-color:currentColor;border-color:#0000}input:where([type=checkbox]):indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}@media(forced-colors:active){input:where([type=checkbox]):indeterminate{appearance:auto}}input:where([type=checkbox]):indeterminate:hover,input:where([type=checkbox]):indeterminate:focus{background-color:currentColor;border-color:#0000}input:where([type=file]){background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}input:where([type=file]):focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.section{padding-block:calc(var(--spacing) * 24)}@media(min-width:80rem){.section{padding-block:calc(var(--spacing) * 28)}}.main-container{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.main-container{border-color:color-mix(in oklab,var(--color-border) 6%,transparent)}}.main-container>.container{border-inline-style:var(--tw-border-style);border-inline-width:1px;border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.main-container>.container{border-color:color-mix(in oklab,var(--color-border) 6%,transparent)}}.container{padding-inline:calc(var(--spacing) * 4);margin-inline:auto}@media(min-width:80rem){.container{max-width:calc(var(--spacing) * 325)!important}}.container-padding-y{padding-block:calc(var(--spacing) * 24)}@media(min-width:80rem){.container-padding-y{padding-block:calc(var(--spacing) * 28)}}@media(min-width:40rem){.container-padding-x{padding-inline:calc(var(--spacing) * 8)}}.content>:first-child{margin-top:calc(var(--spacing) * 0);padding-top:calc(var(--spacing) * 0)}.content{color:var(--tw-prose-body);max-width:65ch}.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.content :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.content :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.content :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.content :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.content :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.content :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.content :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.content :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.content :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.content :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.content :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.content :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.content :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.content :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.content :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.content :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}.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){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;font-style:italic;font-weight:500}.content :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.content :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.content :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.content :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.content :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.content :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.content :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.content :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.content :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.content :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.content :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.content :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.content :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.content :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.content :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.content :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.content :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.content :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.content :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.content :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.content :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.content :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.content :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.content :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.content :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.content :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.content :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.content :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.content :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.content :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.content :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.content :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.content :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.content :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.content{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.content :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.content :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.content :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.content :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.content :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.content :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.content :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.content :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.content :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.content :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.content :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.content :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.content :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.content :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.content :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.content :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.content :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.content :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.content :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.content :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.content{max-width:none}.content :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-text);margin-top:.6em;margin-bottom:.3em}.content :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:var(--text-h1)}.content :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:var(--text-h2);margin-top:calc(var(--spacing) * 12)}.content :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:var(--text-h3)}.content{color:var(--color-gray)}.content :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-text)}.content :where(a):not(:where([class~=not-prose],[class~=not-prose] *)).btn{text-decoration-line:none}.content :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--radius-lg);max-width:100%}.content :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-text)}.content :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--color-border)}.content :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--radius-lg);background-color:var(--color-dark)}.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) ::marker{color:var(--color-primary)!important}.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--color-primary)!important}.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)) ::-webkit-details-marker{color:var(--color-primary)!important}.content :where(ul):not(:where([class~=not-prose],[class~=not-prose] *))::-webkit-details-marker{color:var(--color-primary)!important}.content :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--color-text)}.content :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-left-style:var(--tw-border-style);border-left-width:10px;border-color:var(--color-primary);background-color:var(--color-card);padding-inline:calc(var(--spacing) * 8);padding-block:calc(var(--spacing) * 10);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));color:var(--color-text);font-style:normal}.content :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--radius-lg);position:relative;overflow:hidden}.content :where(table):not(:where([class~=not-prose],[class~=not-prose] *)):before{top:calc(var(--spacing) * 0);left:calc(var(--spacing) * 0);border-radius:inherit;border-style:var(--tw-border-style);content:var(--tw-content);border-width:1px;border-color:var(--color-border);width:100%;height:100%;position:absolute}@supports (color:color-mix(in lab,red,red)){.content :where(table):not(:where([class~=not-prose],[class~=not-prose] *)):before{border-color:color-mix(in oklab,var(--color-border) 20%,transparent)}}.content :where(table):not(:where([class~=not-prose],[class~=not-prose] *)):before{--tw-content:"";content:var(--tw-content)}.content :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.content :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:color-mix(in oklab,var(--color-border) 20%,transparent)}}.content :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.content :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:color-mix(in oklab,var(--color-white) 8%,transparent)}}.content :where(th):not(:where([class~=not-prose],[class~=not-prose] *)){z-index:10;color:var(--color-text);position:relative;padding-inline:calc(var(--spacing) * 4)!important;padding-block:calc(var(--spacing) * 4.5)!important}.content :where(tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.content :where(tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:color-mix(in oklab,var(--color-border) 20%,transparent)}}.content :where(td):not(:where([class~=not-prose],[class~=not-prose] *)){z-index:10;position:relative;padding-inline:calc(var(--spacing) * 3)!important;padding-block:calc(var(--spacing) * 4.5)!important}.btn{cursor:pointer;border-style:var(--tw-border-style);padding-inline:calc(var(--spacing) * 6);padding-block:calc(var(--spacing) * 2.5);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);border-width:1px;border-color:#0000;border-radius:3.40282e38px;display:inline-block}.btn-primary{border-color:var(--color-primary);color:var(--color-white);background:linear-gradient(90deg,var(--primary) 25%,var(--secondary) 100%)}.btn-dark{border-color:var(--color-border)}@supports (color:color-mix(in lab,red,red)){.btn-dark{border-color:color-mix(in oklab,var(--color-border) 6%,transparent)}}.btn-dark{color:var(--color-white);background:linear-gradient(#0e0912,#22162b)}.bg-gradient-dark{background:linear-gradient(#0e0912,#22162b)}.btn-outline-primary{border-color:var(--color-light)}@supports (color:color-mix(in lab,red,red)){.btn-outline-primary{border-color:color-mix(in oklab,var(--color-light) 6%,transparent)}}.btn-outline-primary{color:var(--color-text);background-color:#0000}@media(hover:hover){.btn-outline-primary:hover{background-color:var(--color-dark);color:var(--color-text)!important}}}@layer utilities{.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}.start{inset-inline-start:var(--spacing)}.\!end{inset-inline-end:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.z-50{z-index:50}.container{width:100%}@media(min-width:23.375rem){.container{max-width:23.375rem}}@media(min-width:35rem){.container{max-width:35rem}}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:47.5rem){.container{max-width:47.5rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:56.25rem){.container{max-width:56.25rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:68.75rem){.container{max-width:68.75rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.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);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.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] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.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] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.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] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.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);margin-top:1.25em;font-weight:600}.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] *)){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;font-style:italic;font-weight:500}.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);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.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] *)){margin-top:2em;margin-bottom:2em;display:block}.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] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.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] *)),.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] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.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);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.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] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.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);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.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);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);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] *)),.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] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.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:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.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}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.w-\[30px\]{width:30px}.shrink{flex-shrink:1}.grow{flex-grow:1}.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}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-gray-200{background-color:var(--color-gray-200)}.py-\[2\.5px\]{padding-block:2.5px}.text-\[12px\]{font-size:12px}.text-black{color:var(--color-black)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.shadow,.shadow\/background{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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,)}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(min-width:40rem){.sm\:block{display:block}.sm\:hidden{display:none}.sm\:bg-red-200{background-color:var(--color-red-200)}}@media(min-width:48rem){.md\:block{display:block}.md\:hidden{display:none}.md\:bg-yellow-200{background-color:var(--color-yellow-200)}}@media(min-width:64rem){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:bg-green-200{background-color:var(--color-green-200)}}@media(min-width:80rem){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:bg-blue-200{background-color:var(--color-blue-200)}}@media(min-width:96rem){.\32xl\:block{display:block}.\32xl\:hidden{display:none}.\32xl\:bg-pink-200{background-color:var(--color-pink-200)}}}:root{--font-sans:var(--font-face-primary,ui-sans-serif), system-ui, sans-serif;--font-mono:var(--font-face-secondary,ui-monospace), Menlo, monospace;--primary:#4fa8ff;--secondary:#7fd0ff;--primary-dark:#0a1422;--body:#06090f;--body-2:#0a0f18;--card:#0e1422;--card-2:#131a2b;--border:#78aae61a;--border-strong:#78aae638;--text:#eaf2fb;--text-dim:#a8b6cc;--text-faint:#6f809c;--rule:var(--text-faint);--accent-glow:#4fa8ff4d;--accent-glow-2:#4fa8ff1f;--grid:#78aae60d;--pad-section:96px;--pad-block:32px;--gap-1:8px;--gap-2:12px;--gap-3:16px;--gap-4:24px;--gap-5:32px;--gap-6:48px;--gap-7:64px;--t-mono-sm:.75rem;--t-mono:.75rem;--t-body-sm:.875rem;--t-body-md:.9375rem;--t-body:1rem;--t-body-lg:1.0625rem;--t-lead:1.125rem;--t-title:1.1875rem;--t-h4:1.25rem;--t-h3:clamp(1.375rem, 1.2rem + .75vw, 1.625rem);--t-h2:clamp(1.75rem, 1.35rem + 1.6vw, 2.25rem);--t-h1:clamp(2.25rem, 1.5rem + 3.5vw, 3.5rem);--t-display:clamp(3rem, 1.5rem + 7vw, 5.5rem);--track-mono:.06em;--track-caps:.1em;--radius:10px;--radius-sm:6px;--radius-lg:16px;--radius-pill:999px;--shadow-card:0 30px 70px -34px #000000bf;--shadow-dock:0 12px 24px -22px #000000bf;--shadow-hover:0 16px 40px #00000059;--tint-hover:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root{--tint-hover:color-mix(in oklab, var(--primary) 8%, transparent)}}:root{--tint-selected:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root{--tint-selected:color-mix(in oklab, var(--primary) 12%, transparent)}}:root{--tint-active:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root{--tint-active:color-mix(in oklab, var(--primary) 22%, transparent)}}:root{--border-primary:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root{--border-primary:color-mix(in oklab, var(--primary) 40%, transparent)}}:root{--border-primary-strong:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root{--border-primary-strong:color-mix(in oklab, var(--primary) 55%, transparent)}}:root{--focus-ring:2px solid var(--primary);--focus-offset:3px;--dur-1:.12s;--dur-2:.16s;--dur-3:.24s;--dur-4:.32s;--dur-5:.4s;--dur-entrance:.62s;--dur-route:.49s;--dur-route-step:.175s;--stagger:60ms;--fold-lead:40ms;--fold-step:23ms;--dur-arrive:2s;--dur-blink:1.4s;--dur-pulse:2.8s;--dur-ambient:7s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-fade:ease;--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-back:cubic-bezier(.34, 1.56, .64, 1);--ease-route:cubic-bezier(.45, 0, .55, 1);--art-bg:var(--card)}@supports (color:color-mix(in lab,red,red)){:root{--art-bg:color-mix(in oklab, var(--card) 80%, black)}}:root{--art-ink:var(--body)}@supports (color:color-mix(in lab,red,red)){:root{--art-ink:color-mix(in oklab, var(--body) 35%, black)}}:root{--art-paper:var(--text);--art-accent:var(--primary);--art-accent-2:var(--primary)}@supports (color:color-mix(in lab,red,red)){:root{--art-accent-2:color-mix(in oklab, var(--primary) 35%, var(--text-dim))}}:root{--header-h:60px;--header-h-row:60px;--dock-h:40px;--anchor-offset:calc(var(--header-h) + var(--dock-h) + 16px);--vh-100:100vh}@supports (height:100svh){:root{--vh-100:100svh}}[data-density=compact]{--pad-section:64px;--pad-block:24px}@media(max-width:35rem){:root{--pad-section:64px;--pad-block:24px;--t-mono-sm:.8125rem;--t-mono:.8125rem;--track-mono:.02em}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--t-body);color:var(--text);background:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01","cv11";line-height:1.55}::selection{background:var(--primary);color:var(--body)}[data-palette=protanopia] ::selection{color:#fff}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.app-shell{min-height:100vh;position:relative;overflow-x:clip}.parallax-bg{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.parallax-bg .glow-a,.parallax-bg .glow-b,.parallax-bg .glow-c{filter:blur(80px);opacity:.7;will-change:transform;border-radius:50%;position:absolute}.parallax-bg .glow-a{background:radial-gradient(circle,var(--accent-glow),transparent 65%);width:600px;height:600px;top:-10%;left:10%}.parallax-bg .glow-b{background:radial-gradient(circle,var(--accent-glow-2),transparent 65%);opacity:.55;width:700px;height:700px;top:30%;right:-10%}.parallax-bg .glow-c{background:radial-gradient(circle,var(--accent-glow-2),transparent 70%);opacity:.45;width:800px;height:800px;bottom:-10%;left:35%}.parallax-bg .grid-layer{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);will-change:transform;background-size:80px 80px;position:absolute;inset:-10%;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 30%,#0000 90%);mask-image:radial-gradient(70% 60% at 50% 30%,#000 30%,#0000 90%)}@keyframes aurora-drift{0%{opacity:.55;transform:translate(-8%)scale(1)}to{opacity:.9;transform:translate(10%,6%)scale(1.15)}}@media(max-width:35rem){.parallax-bg .glow-a{animation:aurora-drift var(--dur-ambient) var(--ease-out) infinite alternate}.parallax-bg .glow-b{animation:aurora-drift var(--dur-ambient) var(--ease-out) infinite alternate-reverse}.parallax-bg .grid-layer{opacity:.35}}.parallax-canvas{pointer-events:none;z-index:0;opacity:.55;mix-blend-mode:screen;position:fixed;inset:0}.app-header,.app-footer,main{z-index:1;position:relative}.grid-bg{pointer-events:none;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 30%,#000 40%,#0000 90%);mask-image:radial-gradient(80% 60% at 50% 30%,#000 40%,#0000 90%)}h1,h2,h3,h4{letter-spacing:-.02em;margin:0;font-weight:500;line-height:1.05}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3)}h4{font-size:var(--t-h4)}p{color:var(--text-dim);margin:0}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss02"}.label-eyebrow{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.label-eyebrow .dot{background:var(--primary);vertical-align:middle;width:6px;height:6px;box-shadow:0 0 12px var(--primary);border-radius:50%;margin-right:8px;display:inline-block}mark{background-color:#0000;background-image:linear-gradient(120deg,var(--primary),var(--secondary));color:#0000;-webkit-background-clip:text;background-clip:text}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}.container-narrow{max-width:880px}.app-header{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:var(--body);position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.app-header{background:color-mix(in oklab,var(--body) 70%,transparent)}}.app-header{border-bottom:1px solid var(--border)}.app-header .row{min-height:var(--header-h-row);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.header-tools{flex:none;align-items:center;gap:12px;display:flex}.nav{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.nav-link{border-radius:var(--radius-sm);white-space:nowrap;font-weight:500;font-family:var(--font-mono);color:var(--text-dim);transition:color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),box-shadow var(--dur-2) var(--ease-fade);border:1px solid #0000;padding:6px 12px;font-size:.8125rem;display:block;position:relative}.nav-link:hover{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.nav-link:hover{background:color-mix(in oklab,var(--text) 6%,transparent)}}.nav-link.active{color:var(--text);background:var(--tint-active);border-color:var(--border-primary);box-shadow:0 0 0 1px var(--tint-hover),0 0 18px var(--tint-selected)}.nav-link.active .slash{color:var(--primary)}.nav-link .slash{color:var(--text-faint);transition:color var(--dur-2) var(--ease-fade);margin-right:4px}@media(max-width:56.25rem){.nav{gap:2px}.nav-link{padding:.4375rem .5rem;font-size:.75rem}.nav-link .slash{margin-right:2px}}@media(max-width:23.375rem){.nav-link[href*="#"] .slash{display:none}.app-header .nav-link{padding-inline:0}.app-header .nav-link:before{inset-inline:-2px}}@media(max-width:35rem){:root{--header-h:92px}.app-header{box-shadow:inset 0 -1px 0 var(--border);border-bottom:0}.app-header .row{grid-template-rows:48px 44px;grid-template-columns:auto minmax(0,1fr);gap:0;min-height:0;padding-inline:16px;display:grid}.header-tools{grid-area:1/1;justify-self:start;height:48px}.app-header .row{position:relative}.nav{overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;grid-column:1/-1;justify-content:space-between;gap:0;margin-inline:-16px;padding-inline:8px;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav-link{isolation:isolate;flex:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 2px;font-size:.75rem;display:flex}.nav-link.active,.nav-link:hover{box-shadow:none;background:0 0;border-color:#0000}.nav-link:before{content:"";z-index:-1;border-radius:var(--radius-sm);transition:background-color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),box-shadow var(--dur-2) var(--ease-fade);border:1px solid #0000;position:absolute;inset:7px 0}.nav-link.active:before{background:var(--tint-active);border-color:var(--border-primary);box-shadow:0 0 0 1px var(--tint-hover),0 0 18px var(--tint-selected)}.nav-link .slash{margin-right:1px}.nav-route{position:absolute;top:2px}.nav-route[href="/portfolio"]{right:16px}.nav-route[href="/blog"]{right:108px}.app-header{transition:transform var(--dur-4) var(--ease-out)}.app-header.is-hidden{transform:translateY(-100%)}}@media(max-width:35rem)and (prefers-reduced-motion:reduce){.app-header{transition:none}}@media(max-width:35rem){:root[data-motion=off] .app-header{transition:none}}.app-footer{border-top:1px solid var(--border);margin-top:var(--pad-section);padding:56px 0 64px}.app-footer .row{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;gap:24px;display:flex}.footer-links{flex-wrap:wrap;gap:10px 18px;display:flex}.app-footer a{transition:color var(--dur-2) var(--ease-fade);padding-block:4px;display:inline-block}.app-footer a:hover{color:var(--text)}@media(max-width:35rem){.app-footer{padding:40px 0 48px}}.btn{border-radius:var(--radius-sm);font-family:var(--font-mono);letter-spacing:-.01em;transition:transform var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade);white-space:nowrap;border:1px solid #0000;align-items:center;gap:10px;padding:10px 16px;font-size:.8125rem;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transition-duration:var(--dur-1);transform:translateY(0)}.btn-primary{background:var(--text);color:var(--body);font-weight:500}.btn-primary:hover{box-shadow:0 8px 30px var(--text)}@supports (color:color-mix(in lab,red,red)){.btn-primary:hover{box-shadow:0 8px 30px color-mix(in oklab,var(--text) 18%,transparent)}}.btn-secondary{color:var(--text);border-color:var(--border-strong);background:0 0}.btn-secondary:hover{color:var(--text);background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.btn-secondary:hover{background:color-mix(in oklab,var(--primary) 10%,transparent)}}.btn-secondary:hover{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.btn-secondary:hover{border-color:color-mix(in oklab,var(--primary) 45%,var(--border-strong))}}.btn-ghost{color:var(--text-dim);background:0 0;padding:6px 10px}.btn-ghost:hover{color:var(--text)}.arrow,.hl-go .arrow,.sd-go i,.sd-hl i,.group-jump{transition:transform var(--dur-3) var(--ease-out),color var(--dur-2) var(--ease-fade);display:inline-block}:is(.btn,.hl-go,.sd-go,.sd-hl,.group-link):is(:hover,:focus-visible) :is(.arrow,i,.group-jump){transform:translate(2px)}:is(.btn,.hl-go,.sd-go,.sd-hl,.group-link):is(:hover,:focus-visible) .arrow-down{transform:translateY(2px)}.chip{font-family:var(--font-mono);font-size:var(--t-mono);border-radius:var(--radius-sm);background:var(--text);align-items:center;gap:6px;padding:4px 10px;line-height:1.3;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.chip{background:color-mix(in oklab,var(--text) 5%,transparent)}}.chip{color:var(--text-dim);border:1px solid var(--border);white-space:nowrap}.chip-strong{color:var(--text);border-color:var(--border-strong)}.section-header{flex-direction:column;gap:12px;margin-bottom:40px;display:flex}.section-header .heading{font-size:var(--t-h2);letter-spacing:-.02em;max-width:720px}.section-header .subtitle{color:var(--text-dim);max-width:600px;font-size:var(--t-lead)}.ascii-divider{font-family:var(--font-mono);font-size:var(--t-mono-sm);color:var(--text-faint);letter-spacing:.4em;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap;padding:8px 0;overflow:hidden}.rule{background:var(--border);width:100%;height:1px}.section-marker{align-items:center;gap:16px;margin-bottom:24px;display:flex}.section-marker .num{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint)}.section-marker .line{background:var(--border);flex:1;height:1px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform var(--dur-3) var(--ease-out),box-shadow var(--dur-3) var(--ease-out),border-color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade);position:relative;overflow:hidden}.card:hover{border-color:var(--border-strong);background:var(--card-2);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card-head{padding:20px 22px 12px}.card-body{color:var(--text-dim);padding:0 22px 20px}.card-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;display:flex}.hero{padding:clamp(80px,10vw,140px) 0 clamp(60px,8vw,96px);position:relative}.hero-eyebrow{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--card);align-items:center;gap:10px;margin-bottom:28px;padding:6px 12px 6px 8px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.hero-eyebrow{background:color-mix(in oklab,var(--card) 60%,transparent)}}.hero-eyebrow{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-dim)}.hero h1{letter-spacing:-.035em;max-width:18ch;font-size:clamp(2.5rem,6vw,5rem);font-weight:500;line-height:1.02}.hero .lead{font-size:var(--t-lead);color:var(--text-dim);max-width:56ch;margin-top:24px}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.hero-meta{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);flex-wrap:wrap;gap:28px;margin-top:36px;display:flex}.stat-grid{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.stat{border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:28px 24px;display:flex;position:relative}.stat:last-child{border-right:none}.stat .num{font-family:var(--font-mono);letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:clamp(2.125rem,4vw,3.25rem);font-weight:500}.stat .num .unit{color:var(--primary);margin-left:2px}.stat .lbl{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.stat .desc{color:var(--text-dim);font-size:.8125rem}@media(max-width:56.25rem){.stat-grid{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:none}.stat:first-child,.stat:nth-child(2){border-bottom:1px solid var(--border)}}.skill-list{flex-wrap:wrap;gap:6px;display:flex}.posts-strip{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media(max-width:68.75rem){.posts-strip{scroll-snap-type:x mandatory;grid-template-columns:none;grid-auto-columns:78%;grid-auto-flow:column;margin:0 -32px;padding-bottom:8px;padding-left:32px;padding-right:32px;overflow-x:auto}.posts-strip>*{scroll-snap-align:start}}.post-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform var(--dur-3) var(--ease-out),border-color var(--dur-2) var(--ease-fade);color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.post-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.post-thumb{aspect-ratio:16/9;background:repeating-linear-gradient(135deg,var(--primary) 0 12px,transparent 12px 24px),var(--primary)}@supports (color:color-mix(in lab,red,red)){.post-thumb{background:repeating-linear-gradient(135deg,color-mix(in oklab,var(--primary) 14%,transparent) 0 12px,transparent 12px 24px),color-mix(in oklab,var(--primary) 10%,var(--card))}}.post-thumb{place-items:end start;padding:12px;display:grid;position:relative}.post-thumb .label{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-dim);background:var(--body);font-size:.625rem}@supports (color:color-mix(in lab,red,red)){.post-thumb .label{background:color-mix(in oklab,var(--body) 70%,transparent)}}.post-thumb .label{text-transform:uppercase;border-radius:4px;padding:4px 8px}.post-card .meta-row{font-family:var(--font-mono);font-size:var(--t-mono-sm);color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;gap:12px;padding:14px 18px 6px;display:flex}.post-card .title{font-size:var(--t-body);letter-spacing:-.01em;color:var(--text);padding:4px 18px 12px;line-height:1.3}.post-card .tags{flex-wrap:wrap;gap:6px;margin-top:auto;padding:0 18px 18px;display:flex}.page-header{padding:clamp(80px,10vw,120px) 0 48px}.page-header .crumb{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;display:flex}.crumb>span:not(.sep):not(.sr-only),.project-role>span:not(.sep):not(.sr-only),.hl-meta>span:not(.sep):not(.sr-only){max-width:100%;display:inline-block}.page-header h1{letter-spacing:-.035em;max-width:16ch;font-size:clamp(2.5rem,6vw,4.5rem)}.page-header .desc{font-size:var(--t-lead);color:var(--text-dim);max-width:60ch;margin-top:20px}.timeline{flex-direction:column;gap:8px;display:flex;position:relative}.timeline .row{border-top:1px solid var(--border);grid-template-columns:180px 1fr;gap:24px;padding:24px 0;display:grid;position:relative}.timeline .row:first-child{border-top:1px solid var(--border-strong)}.timeline .row:last-child{border-bottom:1px solid var(--border)}.timeline .when{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);letter-spacing:.04em;flex-direction:column;gap:6px;display:flex}.timeline .when .range{color:var(--text)}.timeline .body h3{letter-spacing:-.015em;margin-bottom:4px;font-size:1.375rem}.timeline .body .sub{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-dim);margin-bottom:12px}.timeline .body .sub .sep{color:var(--text-faint);margin:0 8px}.timeline .body p{font-size:var(--t-body-md);max-width:70ch;margin-bottom:14px}.timeline .body .stack{flex-wrap:wrap;gap:6px;display:flex}@media(max-width:47.5rem){.timeline .row{grid-template-columns:1fr;gap:12px}}.list-row{border-top:1px solid var(--border);grid-template-columns:220px 1fr;align-items:start;gap:24px;padding:20px 0;display:grid}.list-row:last-child{border-bottom:1px solid var(--border)}.list-row .k{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase}.list-row .v{color:var(--text-dim)}.list-row .v strong{color:var(--text);font-weight:500}@media(max-width:47.5rem){.list-row{grid-template-columns:1fr;gap:6px}}.featured-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);transition:transform var(--dur-3) var(--ease-out),border-color var(--dur-2) var(--ease-fade);grid-template-columns:1.1fr 1fr;gap:0;display:grid;overflow:hidden}.featured-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.featured-card .img{background:radial-gradient(circle at 30% 30%,var(--primary),transparent 60%),repeating-linear-gradient(135deg,var(--primary) 0 14px,transparent 14px 28px),var(--primary-dark)}@supports (color:color-mix(in lab,red,red)){.featured-card .img{background:radial-gradient(circle at 30% 30%,color-mix(in oklab,var(--primary) 36%,transparent),transparent 60%),repeating-linear-gradient(135deg,color-mix(in oklab,var(--primary) 10%,transparent) 0 14px,transparent 14px 28px),var(--primary-dark)}}.featured-card .img{min-height:360px;position:relative}.featured-card .img .stamp{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text);background:var(--body);border-radius:4px;padding:5px 10px;position:absolute;top:16px;left:16px}@supports (color:color-mix(in lab,red,red)){.featured-card .img .stamp{background:color-mix(in oklab,var(--body) 70%,transparent)}}.featured-card .img .stamp{border:1px solid var(--border-strong)}.featured-card .body{flex-direction:column;gap:16px;padding:36px;display:flex}.featured-card h2{letter-spacing:-.02em;font-size:2rem}.featured-card .excerpt{color:var(--text-dim);font-size:var(--t-body);max-width:50ch}@media(max-width:56.25rem){.featured-card{grid-template-columns:1fr}.featured-card .img{min-height:220px}}.post-list{flex-direction:column;display:flex}.post-row{border-top:1px solid var(--border);transition:background-color var(--dur-2) var(--ease-fade);grid-template-columns:120px 1fr 200px;align-items:start;gap:24px;padding:28px 0;display:grid;position:relative}.post-row:hover{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.post-row:hover{background:color-mix(in oklab,var(--text) 2%,transparent)}}.post-row:last-child{border-bottom:1px solid var(--border)}.post-row .when{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint)}.post-row .when .day{color:var(--text);font-size:1.375rem;line-height:1;display:block}.post-row .when .my{letter-spacing:.06em}.post-row .body{flex-direction:column;gap:8px;display:flex}.post-row h3{letter-spacing:-.015em;font-size:1.375rem}.post-row .excerpt{color:var(--text-dim);font-size:var(--t-body-sm);max-width:64ch}.post-row .meta-row{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.post-row .read{font-family:var(--font-mono);font-size:var(--t-mono-sm);color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;text-align:right;flex-direction:column;gap:6px;display:flex}.post-row .read .arrow{color:var(--text)}@media(max-width:47.5rem){.post-row{grid-template-columns:1fr;gap:8px}.post-row .read{text-align:left;flex-direction:row}}.pagination{font-family:var(--font-mono);justify-content:center;gap:6px;margin-top:48px;display:flex}.pagination button{border:1px solid var(--border);width:36px;height:36px;color:var(--text-dim);border-radius:6px;font-size:.8125rem}.pagination button:hover{border-color:var(--border-strong);color:var(--text)}.pagination button.active{background:var(--text);color:var(--body);border-color:var(--text)}.pagination .ellipsis{color:var(--text-faint);place-items:center;padding:0 4px;display:grid}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.projects-grid>li{min-width:0;display:flex}@media(max-width:47.5rem){.projects-grid{grid-template-columns:minmax(0,1fr)}}.project-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;min-width:0;transition:border-color var(--dur-2) var(--ease-fade);flex-direction:column;display:flex;overflow:hidden}.project-card:hover,.project-card:focus-within{border-color:var(--border-strong)}.project-card .body{flex-direction:column;flex:1;gap:12px;padding:20px 20px 16px;display:flex}.project-card .title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.project-card .started{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);white-space:nowrap}.project-card h2{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:1.375rem}.project-card p{font-size:var(--t-body-sm);color:var(--text-dim)}.project-card .stack{flex-wrap:wrap;gap:6px;margin:auto 0 0;padding:8px 0 0;list-style:none;display:flex}.project-card .foot{font-family:var(--font-mono);font-size:var(--t-mono);flex-wrap:wrap;align-items:center;gap:8px 20px;padding:0 20px 20px;display:flex}.project-card .foot a{color:var(--text);text-underline-offset:3px;align-items:center;gap:6px;padding-block:4px;text-decoration:underline;display:inline-flex}@media(pointer:coarse){.project-card .foot a{min-height:44px}}.project-card .foot .gh-arrow{color:var(--text-faint);transition:transform var(--dur-3) var(--ease-out),color var(--dur-2) var(--ease-fade);display:inline-block}.project-card .foot a:is(:hover,:focus-visible) .gh-arrow{color:var(--primary);transform:translate(2px,-2px)}.project-card .foot a.gh-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-dim);transition:color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade);padding:6px 12px;text-decoration:none}.project-card .foot a.gh-btn .gh-mark{transition:color var(--dur-2) var(--ease-fade)}.project-card .foot a.gh-btn:is(:hover,:focus-visible){color:var(--text);border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.project-card .foot a.gh-btn:is(:hover,:focus-visible){border-color:color-mix(in oklab,var(--primary) 45%,var(--border-strong))}}.project-card .foot a.gh-btn:is(:hover,:focus-visible){background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.project-card .foot a.gh-btn:is(:hover,:focus-visible){background:color-mix(in oklab,var(--primary) 10%,transparent)}}.project-card .foot a.gh-btn:is(:hover,:focus-visible) .gh-mark{color:var(--primary)}.project-cover{border-bottom:1px solid var(--border);line-height:0}.project-cover .cover-art{width:100%;height:auto;display:block}.cover-art .r-bg{fill:var(--art-bg)}.cover-art .r-ink{fill:var(--art-ink)}.cover-art .r-paper{fill:var(--art-paper)}.cover-art .r-accent{fill:var(--art-accent)}.cover-art .r-accent-2{fill:var(--art-accent-2)}.cover-art .r-ink[stroke-width]{stroke:var(--art-ink)}.cover-art .title-fill{stroke:var(--art-paper)}.section{padding-top:var(--pad-section)}.section-tight{padding-top:var(--pad-block)}.stack-block{gap:var(--pad-block);flex-direction:column;display:flex}.is-revealing{transition:opacity var(--dur-5) var(--ease-out) calc(var(--reveal-i,0) * var(--stagger)),transform var(--dur-5) var(--ease-out) calc(var(--reveal-i,0) * var(--stagger))}.is-revealing.is-unrevealed{opacity:0;transform:translateY(16px)}@media(prefers-reduced-motion:reduce){.is-revealing{transition:none}.is-revealing.is-unrevealed{opacity:1;transform:none}}:root[data-motion=off] .is-revealing{transition:none}:root[data-motion=off] .is-revealing.is-unrevealed{opacity:1;transform:none}@media print{.is-revealing{transition:none}.is-revealing.is-unrevealed{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}:root[data-motion=off]{scroll-behavior:auto}:root[data-motion=off] *,:root[data-motion=off] :before,:root[data-motion=off] :after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.posts-strip::-webkit-scrollbar{display:none}.posts-strip{scrollbar-width:none}.kbd{font-family:var(--font-mono);font-size:var(--t-mono-sm);border:1px solid var(--border-strong);color:var(--text-dim);background:var(--card);border-bottom-width:2px;border-radius:4px;padding:2px 6px}.cmd-prompt{font-family:var(--font-mono);color:var(--text-dim);font-size:.8125rem}.cmd-prompt .pr{color:var(--primary)}.cmd-prompt .arg,.hero-eyebrow .pill-text{color:var(--text)}.hero-eyebrow .pill-meta{color:var(--text-faint);margin-left:4px}.hero-meta .k{color:var(--primary);opacity:.85;margin-right:8px}.scroll-sentinel{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;align-items:center;gap:10px;padding:56px 0 24px;display:flex}.scroll-sentinel.end{color:var(--text-faint)}.scroll-sentinel.end:before{content:"·   ·   ·   ·   ·   ·   ·";letter-spacing:.4em;color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.scroll-sentinel.end:before{color:color-mix(in oklab,var(--primary) 50%,var(--text-faint))}}.scroll-sentinel.end:before{margin-bottom:4px}.hero{z-index:1}.hero .grid-bg{opacity:.7}.hero h1 mark{background-image:linear-gradient(120deg,var(--primary),var(--secondary))}a:hover{color:var(--text)}.cursor{background:var(--primary);box-shadow:0 0 12px var(--accent-glow)}.featured-card .img:after{content:"";background:linear-gradient(120deg,transparent 30%,var(--primary) 50%,transparent 70%);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.featured-card .img:after{background:linear-gradient(120deg,transparent 30%,color-mix(in oklab,var(--primary) 8%,transparent) 50%,transparent 70%)}}.featured-card .img:after{animation:shimmer var(--dur-ambient) var(--ease-in-out) infinite}@keyframes shimmer{0%,to{transform:translate(-30%)}50%{transform:translate(30%)}}.ascii-hero-wrap{max-width:100%;margin:0 0 28px;display:block}.ascii-hero-svg{width:100%;max-width:240px;height:auto;font-family:var(--font-mono);display:block;overflow:visible}.ascii-hero-svg .ascii-svg-prompt{fill:var(--text-dim);font-size:12px}.ascii-hero-svg .ascii-svg-arrow{fill:var(--primary)}.ascii-hero-svg .ascii-svg-cmd{fill:var(--text-dim)}.ascii-hero-svg .ascii-svg-cursor{fill:var(--primary);animation:cursor-blink var(--dur-blink) linear infinite}@keyframes cursor-blink{0%,71.4%{opacity:1}71.5%,to{opacity:0}}.ascii-hero-svg .ascii-svg-art{fill:var(--primary);font-size:12px}@media(max-width:47.5rem){.ascii-hero-wrap{margin-bottom:20px}.ascii-hero-svg{max-width:180px}}@media(prefers-reduced-motion:reduce){.ascii-hero-svg .ascii-svg-cursor{animation:none}}:root[data-motion=off] .ascii-hero-svg .ascii-svg-cursor{animation:none}.post-breadcrumb .crumb-link{position:relative}.post-breadcrumb .crumb-link:before{content:"";width:max(100%,44px);height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}html[data-palette=dark],[data-theme-preview=dark]{--primary:#6e92b8;--secondary:#91b0cc;--primary-dark:#15192a;--body:#1a1f2d;--body-2:#1f2535;--card:#232a3d;--card-2:#2a3147;--border:#b4c8e61a;--border-strong:#b4c8e62e;--text:#c9d2df;--text-dim:#8e97a8;--text-faint:#8b92a3;--accent-glow:#6e92b82e;--accent-glow-2:#6e92b80f;--grid:#b4c8e60a}html[data-palette=light],[data-theme-preview=light]{--primary:#1f4fa8;--secondary:#4f7ec8;--primary-dark:#dee6f2;--body:#f2f4f8;--body-2:#e9edf3;--card:#fff;--card-2:#f4f6fa;--border:#14325a1a;--border-strong:#14325a38;--text:#0f1a2e;--text-dim:#41526c;--text-faint:#60708b;--rule:var(--border-strong);--accent-glow:#1f4fa81a;--accent-glow-2:#1f4fa80a;--grid:#14325a0d;--art-bg:var(--primary)}@supports (color:color-mix(in lab,red,red)){html[data-palette=light],[data-theme-preview=light]{--art-bg:color-mix(in oklab, var(--primary) 10%, var(--card-2))}}html[data-palette=light],[data-theme-preview=light]{--art-ink:var(--text);--art-paper:var(--card);--art-accent:var(--primary);--art-accent-2:var(--primary)}@supports (color:color-mix(in lab,red,red)){html[data-palette=light],[data-theme-preview=light]{--art-accent-2:color-mix(in oklab, var(--primary) 30%, var(--text-faint))}}html[data-palette=medium],[data-theme-preview=medium],html[data-palette=achromatopsia],[data-theme-preview=achromatopsia]{--art-accent:var(--text)}@supports (color:color-mix(in lab,red,red)){html[data-palette=medium],[data-theme-preview=medium],html[data-palette=achromatopsia],[data-theme-preview=achromatopsia]{--art-accent:color-mix(in oklab, var(--text) 55%, var(--card))}}html[data-palette=medium],[data-theme-preview=medium],html[data-palette=achromatopsia],[data-theme-preview=achromatopsia]{--art-accent-2:var(--text)}@supports (color:color-mix(in lab,red,red)){html[data-palette=medium],[data-theme-preview=medium],html[data-palette=achromatopsia],[data-theme-preview=achromatopsia]{--art-accent-2:color-mix(in oklab, var(--text) 32%, var(--card))}}html[data-palette=light] .parallax-canvas{mix-blend-mode:multiply;opacity:.32}html[data-palette=medium],[data-theme-preview=medium]{--primary:#e6e6e6;--secondary:#b8b8b8;--primary-dark:#2e2e30;--body:#3a3a3d;--body-2:#424246;--card:#4d4d52;--card-2:#595960;--border:#ffffff1a;--border-strong:#ffffff38;--text:#f2f2f2;--text-dim:#bfbfbf;--text-faint:#bfbfbf;--accent-glow:#ffffff1a;--accent-glow-2:#ffffff0a;--grid:#ffffff0a}html[data-palette=deuteranopia],[data-theme-preview=deuteranopia]{--primary:#56b4e9;--secondary:#e69f00;--primary-dark:#0e1620;--body:#0e141c;--body-2:#131a24;--card:#181f2b;--card-2:#1f2737;--border:#b4c8e61a;--border-strong:#b4c8e638;--text:#f0f4fa;--text-dim:#b8c2d2;--text-faint:#7c8799;--accent-glow:#56b4e94d;--accent-glow-2:#56b4e91f;--grid:#b4c8e60d}html[data-palette=protanopia],[data-theme-preview=protanopia]{--primary:#0072b2;--secondary:#f0e442;--primary-dark:#0a1320;--body:#0c121c;--body-2:#121823;--card:#161e2c;--card-2:#1d2638;--border:#96b4dc1a;--border-strong:#96b4dc38;--text:#f2f5fa;--text-dim:#b8c0d0;--text-faint:#7b869b;--accent-glow:#0072b252;--accent-glow-2:#0072b224;--grid:#96b4dc0d}html[data-palette=tritanopia],[data-theme-preview=tritanopia]{--primary:#d55e00;--secondary:#cc79a7;--primary-dark:#1e120b;--body:#1a0f0a;--body-2:#221610;--card:#2a1c14;--card-2:#34241b;--border:#ffc8aa1a;--border-strong:#ffc8aa38;--text:#fbf0e5;--text-dim:#d9bfa8;--text-faint:#99836c;--accent-glow:#d55e004d;--accent-glow-2:#d55e001f;--grid:#ffc8aa0d}html[data-palette=achromatopsia],[data-theme-preview=achromatopsia]{--primary:#fff;--secondary:silver;--primary-dark:#1a1a1a;--body:#0e0e0e;--body-2:#141414;--card:#1a1a1a;--card-2:#222;--border:#ffffff1a;--border-strong:#ffffff3d;--text:#f5f5f5;--text-dim:#b0b0b0;--text-faint:#838383;--accent-glow:#fff3;--accent-glow-2:#ffffff14;--grid:#ffffff0a}html[data-palette=achromatopsia] mark{text-underline-offset:4px;font-weight:700!important;text-decoration:underline!important}html[data-palette=achromatopsia] .nav-link.active{font-weight:700!important}html[data-palette=achromatopsia] .chip-strong{outline:1px solid #fff!important;font-weight:600!important}html[data-palette=high-contrast],[data-theme-preview=high-contrast]{--primary:#ffeb00;--secondary:#00e5ff;--primary-dark:#000;--body:#000;--body-2:#000;--card:#0a0a0a;--card-2:#141414;--border:#ffffff80;--border-strong:#ffffffd9;--text:#fff;--text-dim:#f0f0f0;--text-faint:#c8c8c8;--accent-glow:#ffeb0059;--accent-glow-2:#ffeb0026;--grid:#ffffff1a}html[data-palette=high-contrast] .parallax-bg,html[data-palette=high-contrast] .parallax-canvas{display:none!important}html[data-palette=high-contrast] .component-card,html[data-palette=high-contrast] .card{background:var(--card)!important;border:2px solid var(--border-strong)!important}html[data-palette=high-contrast] .btn,html[data-palette=high-contrast] .chip{border-width:2px!important}html[data-palette=dyslexia],[data-theme-preview=dyslexia]{--primary:#1e4d8b;--secondary:#4574ac;--primary-dark:#e8ddc8;--body:#faf3dc;--body-2:#f4ecd1;--card:#fff8e2;--card-2:#f0e8c8;--border:#3c28141f;--border-strong:#3c28143d;--text:#2a2a2a;--text-dim:#4f4f4f;--text-faint:#6e6e6e;--rule:var(--border-strong);--accent-glow:#1e4d8b1a;--accent-glow-2:#1e4d8b0a;--grid:#3c28140d}html[data-palette=dyslexia]{--font-sans:var(--font-face-dyslexia), "Verdana", system-ui, sans-serif!important;--font-mono:var(--font-face-dyslexia), "Verdana", monospace!important}html[data-palette=dyslexia] body,html[data-palette=dyslexia] p,html[data-palette=dyslexia] li,html[data-palette=dyslexia] .lead,html[data-palette=dyslexia] .excerpt{letter-spacing:.02em!important;word-spacing:.08em!important;line-height:1.8!important}html[data-palette=dyslexia] h1,html[data-palette=dyslexia] h2,html[data-palette=dyslexia] h3{letter-spacing:-.01em!important;font-weight:700!important;line-height:1.25!important}html[data-palette=dyslexia] .ascii-hero-svg,html[data-palette=dyslexia] .ascii-block,html[data-palette=dyslexia] .term-hero{font-family:var(--font-face-dyslexia),monospace!important}html[data-palette=dyslexia] mark{font-weight:700!important}html[data-palette=dyslexia] .parallax-canvas{mix-blend-mode:multiply;opacity:.32}.section-anchored{scroll-margin-top:calc(var(--header-h) - var(--scroll-pad));position:relative}.section-dock{top:var(--header-h);z-index:20;transition:box-shadow var(--dur-3) var(--ease-fade),background-color var(--dur-3) var(--ease-fade),backdrop-filter var(--dur-3) var(--ease-fade);position:sticky}.section-dock .section-marker{height:var(--dock-h);align-items:center;gap:16px;margin:0;display:flex}.section-dock.is-docked{background:var(--body)}@supports (color:color-mix(in lab,red,red)){.section-dock.is-docked{background:color-mix(in oklab,var(--body) 97%,transparent)}}.section-dock.is-docked{-webkit-backdrop-filter:blur(14px)saturate(120%);backdrop-filter:blur(14px)saturate(120%);box-shadow:inset 0 -1px 0 var(--border),var(--shadow-dock)}.section-dock .num{transition:color var(--dur-3) var(--ease-fade)}.section-dock.is-docked .num{color:var(--text-dim)}.section-dock .line{transition:background-color var(--dur-3) var(--ease-fade)}.section-dock.is-docked .line{background:var(--border-strong)}.section-anchored .section-header{margin-bottom:0;padding-top:16px}.section-body{padding-top:22px;padding-bottom:var(--pad-section)}#contact .section-body{padding-bottom:var(--gap-5)}.section-anchored .section-header .heading,.contact .heading{letter-spacing:-.02em;font-size:clamp(1.625rem,3.4vw,2rem);font-weight:500}.project,.tl-row,.hl-pane{scroll-margin-top:calc(var(--anchor-offset) - var(--scroll-pad))}.hero{padding:clamp(56px,7vw,104px) 0 clamp(72px,9vw,120px)}.hero-subtitle{font-size:var(--t-lead);color:var(--text-dim);max-width:46ch;margin-top:10px;line-height:1.4}.hero-tags{font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-dim);letter-spacing:.02em;margin-top:10px}.hero-name{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:22px;font-weight:600;position:relative}.hero-name.is-scrambling .hero-name-text{color:#0000}.hero-name .scramble-layer{color:inherit;pointer-events:none;position:absolute;inset:0}.hero-kicker{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.hero-chip{font-size:var(--t-mono);white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.hero-lead .lead-more{display:none}.hero-lead .lead-fold,.hero-lead .lead-fold .fold-clip,.hero-lead .lead-rest{visibility:visible;opacity:1;display:inline;transform:none}.hero-grid{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:clamp(24px,4vw,56px);display:grid;position:relative}.hero-copy{min-width:0}.hero h1{max-width:20ch}.hero .lead{max-width:60ch;margin-top:22px}.hero-actions{margin-top:32px}.hero-portrait{flex-direction:column;justify-self:end;align-items:flex-start;display:flex}.hero-portrait .ascii-hero-wrap{margin:0 0 18px}.hero-avatar-frame{position:relative}.hero-avatar-frame:before{content:"";background:radial-gradient(circle at 50% 42%,var(--accent-glow),transparent 68%);filter:blur(14px);opacity:.85;pointer-events:none;border-radius:50%;position:absolute;inset:-22%}.hero-avatar{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border-strong);width:clamp(160px,22vw,340px);height:auto;box-shadow:0 0 0 6px var(--card),var(--shadow-card);display:block;position:relative}@supports (color:color-mix(in lab,red,red)){.hero-avatar{box-shadow:0 0 0 6px color-mix(in oklab,var(--card) 60%,transparent),var(--shadow-card)}}@keyframes hero-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero-copy>*,.hero-portrait{animation:hero-in var(--dur-entrance) var(--ease-out) both;animation-delay:calc(var(--hero-i,0) * var(--stagger))}.hero-copy>:nth-child(2){--hero-i:1}.hero-copy>:nth-child(3){--hero-i:2}.hero-copy>:nth-child(4){--hero-i:3}.hero-copy>:nth-child(5){--hero-i:4}.hero-copy>:nth-child(6){--hero-i:5}.hero-copy>:nth-child(7){--hero-i:6}.hero-portrait{--hero-i:2}.hero-actions~.cta-address{margin-top:var(--gap-3);font-family:var(--font-mono);font-size:var(--t-mono);color:var(--text-dim);overflow-wrap:anywhere}@media(max-width:47.5rem){.hero{padding-top:clamp(16px,5vw,56px)}.hero-grid{grid-template-columns:1fr;gap:20px}.hero-kicker{font-size:var(--t-mono);margin-bottom:clamp(8px,2.4vw,22px)}.hero h1{font-size:clamp(1.75rem,6vw,5rem)}.hero-tags{margin-top:clamp(6px,1.9vw,10px)}.hero-subtitle{font-size:clamp(var(--t-body),2.4vw,var(--t-lead));margin-top:clamp(6px,1.9vw,10px)}.hero .lead{font-size:clamp(var(--t-body),2.4vw,var(--t-lead));margin-top:clamp(10px,3.2vw,22px);line-height:1.45}.hero-actions{margin-top:clamp(12px,4vw,32px)}.hero-portrait{justify-self:start}.hero-avatar{width:clamp(112px,32vw,140px)}}@media(max-width:35rem){.hero{padding-top:clamp(8px,3vw,16px)}.hero-subtitle{margin-top:clamp(4px,1.2vw,8px)}.hero .lead{margin-top:clamp(6px,2vw,10px);line-height:1.45}.hero{--hero-portrait-size:96px}.hero-grid{grid-template-columns:minmax(0,1fr);row-gap:0}.hero-copy{display:contents}.hero-copy>*{grid-column:1/-1}.hero-portrait{flex-direction:row-reverse;grid-area:1/1/auto/-1;justify-content:flex-end;align-items:center;gap:16px;width:auto}.hero-copy>.hero-name{grid-area:2/1/auto/-1;margin:14px 0 0}.hero-name{font-family:var(--font-sans);font-size:clamp(2rem,10vw,var(--t-display));letter-spacing:-.02em;text-transform:none;color:var(--text);line-height:.95}.hero h1{max-width:none;margin-top:8px}.hero-avatar{width:var(--hero-portrait-size);border-radius:var(--radius-lg)}.hero-portrait .ascii-hero-wrap{flex:auto;min-width:0;margin:0}.hero-portrait .ascii-hero-svg{width:min(220px,100%);height:auto;display:block}.hero-kicker{margin-top:10px}.hero .hero-actions{flex-wrap:nowrap}.hero-lead .lead-more{align-items:center;gap:6px;min-width:44px;min-height:44px;display:inline-flex}.hero-lead .lead-fold{visibility:hidden;display:grid}.hero-lead .lead-fold.is-open{visibility:visible}.hero-lead .lead-fold .fold-clip,.hero-lead .lead-rest{display:block}}.lead-more{font:inherit;font-family:var(--font-mono);font-size:var(--t-mono);color:var(--primary);cursor:pointer;background:0 0;border:0;margin:-12px 0;padding:12px 4px}.lead-more .lead-less-label,.lead-more[aria-expanded=true] .lead-more-label{display:none}.lead-more[aria-expanded=true] .lead-less-label{display:inline}@keyframes hero-portrait-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@media(max-width:35rem){.hero-portrait{animation:none}.hero-avatar-frame,.hero-portrait .ascii-hero-wrap{animation:hero-portrait-in var(--dur-entrance) var(--ease-out) both}.hero-portrait .ascii-hero-wrap{animation-name:hero-in;animation-delay:var(--stagger)}.hero-actions .btn{min-height:44px}.hero-actions .btn-primary{flex:100%;justify-content:center}.hero .hero-actions .btn-primary{flex:auto}.hero .hero-actions .btn-icon{display:none}.hero-actions .btn-secondary{flex:auto;justify-content:center}.hero-actions .btn-icon{flex:0 0 44px;justify-content:center;width:44px;height:44px;padding:0}}.hl{grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:start;gap:clamp(20px,3vw,44px);display:grid}.hl-idx{grid-area:1/1;align-content:start;gap:2px;display:grid}.hl-tab{text-align:left;border-left:2px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;width:100%;color:var(--text-dim);transition:color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade);grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:10px;padding:10px 14px;display:grid}.hl-tab .n{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:var(--track-mono);color:var(--text-dim);transition:color var(--dur-2) var(--ease-fade)}.hl-tab .t{font-size:var(--t-body-md);line-height:1.35}.hl-tab:hover{color:var(--text);border-left-color:var(--border-strong);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.hl-tab:hover{background:color-mix(in oklab,var(--text) 4%,transparent)}}.hl-tab[aria-selected=true]{color:var(--text);border-left-color:var(--primary);background:var(--tint-hover)}.hl-tab[aria-selected=true] .n{color:var(--primary)}.hl-pane{grid-area:1/2;align-content:start;gap:12px;display:grid}.hl-pane[hidden]{display:none}.hl-title{letter-spacing:-.01em;color:var(--text);font-size:clamp(1.25rem,2.4vw,1.5rem);font-weight:500;line-height:1.25}.hl-meta{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:2px 4px;display:flex}.hl-meta .sep{color:var(--border-strong)}.hl-text{font-size:var(--t-body-lg);color:var(--text-dim);max-width:58ch;line-height:1.6}.hl-go{min-height:24px;font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.06em;color:var(--text-dim);transition:color var(--dur-2) var(--ease-fade);justify-self:start;align-items:center;gap:8px;margin-top:2px;padding-block:2px;text-decoration:none;display:inline-flex}.hl-go:is(:hover,:focus-visible){color:var(--text)}@keyframes hl-in{0%{opacity:0;transform:translateY(6px)}}.hl-pane.is-in{animation:hl-in var(--dur-3) var(--ease-out)}.hl-pane.is-resizing{overflow:hidden}@media(prefers-reduced-motion:reduce){.hl-pane.is-in{animation:none}}@media(max-width:47.5rem){.hl{grid-template-columns:minmax(0,1fr);gap:22px}.hl-idx{grid-area:1/1}.hl-pane{grid-area:2/1}}@media(max-width:35rem){.hl-tab{padding:12px}.hl-text{font-size:var(--t-body)}}.fold{visibility:hidden;transition:grid-template-rows var(--dur-4) var(--ease-out),visibility 0s linear var(--dur-4);grid-template-rows:0fr;display:grid}.fold.is-open,.chips-block.is-open>.fold{visibility:visible;transition:grid-template-rows var(--dur-4) var(--ease-out),visibility 0s;grid-template-rows:1fr}.fold-clip{min-height:0;overflow:hidden}.fold.is-instant,.fold.is-instant .fold-item{transition:none}.fold-item{transition:opacity var(--dur-2) var(--ease-fade),transform var(--dur-3) var(--ease-out)}.fold:not(.is-open) .fold-item{opacity:0;transform:translateY(6px)}.fold.is-open .fold-item,.chips-block.is-open>.fold .fold-item{opacity:1;transition-duration:var(--dur-3),var(--dur-4);transition-delay:calc(var(--fold-lead) + var(--fold-i,0) * var(--fold-step));transform:none}@media print{.fold,.fold.is-open{visibility:visible;grid-template-rows:1fr}.fold .fold-item{opacity:1;transform:none}}.tog,.box-marker{transition:transform var(--dur-3) var(--ease-out),color var(--dur-2) var(--ease-fade),opacity var(--dur-2) var(--ease-fade);position:relative}.tog{flex:none;width:11px;height:11px;display:inline-block}.tog:before,.tog:after,.box-marker:before,.box-marker:after{content:"";background:currentColor;width:11px;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tog:after,.box-marker:after{transform:translate(-50%,-50%)rotate(90deg)}[aria-expanded=true]>.tog{color:var(--primary);transform:rotate(45deg)}.chip-plus{border-style:dashed;border-color:var(--border-strong);color:var(--text-dim);font-weight:inherit;cursor:pointer;transition:color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),opacity var(--dur-2) var(--ease-fade),transform var(--dur-3) var(--ease-out);background:0 0;gap:6px}.chip-plus:is(:hover,:focus-visible,[aria-expanded=true]){color:var(--text);border-color:var(--border-primary)}.chip-core{color:var(--text);border-color:var(--primary);font-weight:500}@supports (color:color-mix(in lab,red,red)){.chip-core{border-color:color-mix(in oklab,var(--primary) 40%,var(--border-strong))}}.chip-core{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.chip-core{background:color-mix(in oklab,var(--primary) 10%,transparent)}}.projects{display:grid}.projects.is-arming,.projects.is-arming *{transition:none!important}.project-group{scroll-margin-top:calc(var(--anchor-offset) - var(--scroll-pad));grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:clamp(24px,4vw,56px);padding:28px 0 30px;display:grid}.project-group:first-child{padding-top:4px}.project-group+.project-group{border-top:1px solid var(--rule)}.group-dock{min-width:0}.dock-inner{top:calc(var(--anchor-offset) + 8px);gap:10px;padding-top:18px;display:grid;position:sticky}.group-dot,.dock-bars{transition:opacity var(--dur-5) var(--ease-fade)}.projects.is-armed .project-group.is-past :is(.group-dot,.dock-bars){opacity:.45}.dock-range{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:var(--track-mono);color:var(--text-dim)}.group-name{font-size:inherit;letter-spacing:0;margin:0;font-weight:400;line-height:1.3}.group-link{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.group-dot{background:var(--primary);width:7px;height:7px;box-shadow:0 0 10px var(--accent-glow);border-radius:50%;flex:none}.group-title{font-size:var(--t-title);letter-spacing:-.01em;color:var(--text);font-weight:500}.group-jump{color:var(--text-dim)}.group-link:is(:hover,:focus-visible) .group-jump{color:var(--primary)}.dock-roles{font-size:var(--t-body-sm);color:var(--text-dim);gap:3px;margin:0;padding:0;line-height:1.4;list-style:none;display:grid}.dock-roles li{transition:color var(--dur-3) var(--ease-fade)}.projects.is-armed .dock-roles li.is-on{color:var(--text)}.dock-sectors{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:var(--track-mono);color:var(--text-dim)}.dock-progress{align-items:center;gap:12px;margin-top:6px;display:none}.projects.is-armed .dock-progress{display:flex}.dock-open:empty{display:none}.dock-open{animation:dock-open-in var(--dur-3) var(--ease-out)}@keyframes dock-open-in{0%{opacity:0;transform:translateY(4px)}}.dock-count,.dock-open{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:var(--track-mono);font-variant-numeric:tabular-nums;color:var(--text-dim)}.dock-bars{flex-wrap:wrap;gap:4px;display:flex}.dock-bars i{background:var(--border-strong);border-radius:2px;width:18px;height:2px;position:relative;overflow:hidden}.dock-bars i:after{content:"";background:var(--primary);transform-origin:0;transition:transform var(--dur-5) var(--ease-out);position:absolute;inset:0;transform:scaleX(0)}.dock-bars i.is-on:after{transform:none}.dock-bars i[hidden]{display:none}.group-projects{min-width:0;position:relative}.group-projects:before{content:"";background:var(--rule);width:1px;position:absolute;top:0;bottom:0;left:0}.project{border-radius:0 var(--radius-sm) var(--radius-sm) 0;gap:9px;padding:18px 28px 20px 22px;display:grid;position:relative}.project+.project,.project-fold .project:first-child{border-top:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.project+.project,.project-fold .project:first-child{border-top:1px solid color-mix(in oklab,var(--border) 55%,transparent)}}.project-more{margin:6px 0 10px 22px}.project:before{content:"";background:var(--primary);transform-origin:top;width:2px;transition:transform var(--dur-5) var(--ease-out);border-radius:2px;position:absolute;top:14px;bottom:14px;left:0;transform:scaleY(0)}.projects.is-armed .project.is-focus:before{transform:none}.projects.is-armed .project.can-open{cursor:pointer}.box-marker{width:24px;height:24px;color:var(--text-dim);opacity:.55;cursor:pointer;background:0 0;border:0;margin:0;padding:0;position:absolute;top:8px;right:8px}@media(hover:hover){.project.can-open:hover .title>.box-marker,.chips-block.can-open:hover>.box-marker{opacity:1;color:var(--text)}.project:has(.chips-block.can-open:hover):not(:has(.how-wrap.is-open)) .title>.box-marker{opacity:.55;color:var(--text-dim)}.projects.is-armed .chips-block.can-open:hover{border-color:var(--border);background:var(--card)}@supports (color:color-mix(in lab,red,red)){.projects.is-armed .chips-block.can-open:hover{background:color-mix(in oklab,var(--card) 60%,transparent)}}}@media(hover:none){.box-marker{opacity:1;color:var(--text)}}@supports selector(:has(*)){.project-toggle:focus-visible,.chips-toggle:focus-visible{outline:none}.project:has(.project-toggle:focus-visible),.chips-block:has(>.chips-toggle:focus-visible){outline:var(--focus-ring);outline-offset:var(--focus-offset)}.project:has(.project-toggle:focus-visible) .title>.box-marker,.chips-block:has(>.chips-toggle:focus-visible)>.box-marker{opacity:1;color:var(--text)}}.projects.is-armed .project:has(.how-wrap.is-open) .title>.box-marker,.projects.is-armed .project .chips-block.is-open>.box-marker{opacity:1;color:var(--primary)}.projects.is-armed .project:has(.how-wrap.is-open) .title>.box-marker{transform:translateY(-50%)rotate(45deg)}.projects.is-armed .project .chips-block.is-open>.box-marker{transform:rotate(45deg)}.project-role{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:var(--track-mono);color:var(--text-dim);transition:color var(--dur-3) var(--ease-fade);flex-wrap:wrap;align-items:center;gap:2px 4px;margin-bottom:-4px;display:flex}.projects.is-armed .project.is-focus .project-role{color:var(--text)}.project-role .sep{color:var(--border-strong)}.project .title{font-size:var(--t-title);letter-spacing:-.01em;color:var(--text);max-width:62ch;font-weight:500;line-height:1.35;position:relative}.projects.is-armed .project.can-open .title{padding-right:32px}.title>.box-marker{top:50%;right:0;transform:translateY(-50%)}.project-toggle{font:inherit;letter-spacing:inherit;line-height:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;display:inline}.project .outcome{font-size:var(--t-body);color:var(--text-dim);max-width:70ch;line-height:1.6}.how-wrap{font-size:var(--t-body-sm);transition:grid-template-rows var(--dur-4) var(--ease-out);grid-template-rows:1fr;line-height:1.6;display:grid;position:relative}.how-clip{min-height:0;overflow:hidden}.project .how{color:var(--text-dim);max-width:74ch;margin:0;position:relative}.how-teaser{display:none}.projects.is-armed .how-clip{min-height:1lh;transition:opacity var(--dur-3) var(--ease-fade) calc(var(--dur-1) / 4)}.projects.is-armed .how-teaser{white-space:nowrap;text-overflow:ellipsis;max-width:74ch;color:var(--text-dim);pointer-events:none;transition:opacity var(--dur-2) var(--ease-fade);display:block;position:absolute;inset:0 0 auto;overflow:hidden}.projects.is-armed .how-wrap:not(.is-open){grid-template-rows:0fr}.projects.is-armed .how-wrap:not(.is-open) .how-clip{opacity:0;transition-delay:0s}.projects.is-armed .how-wrap.is-open .how-teaser{opacity:0}.scramble-layer{color:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.how.is-scrambling .how-text,.chip.is-scrambling .chip-text{color:#0000}.chips-wrap,.chips-clip{display:contents}.chips-block{display:grid}.projects.is-armed .chips-block{border-radius:var(--radius);transition:border-color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade);border:1px solid #0000;padding:8px 40px 8px 8px;position:relative}.projects.is-armed .chips-block.can-open{cursor:pointer}.projects.is-armed .chips-block.is-open{border-color:var(--border);background:var(--card)}@supports (color:color-mix(in lab,red,red)){.projects.is-armed .chips-block.is-open{background:color-mix(in oklab,var(--card) 60%,transparent)}}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip-ghost{display:none}.projects.is-armed .chip-ghost{display:inline-flex}.projects.is-armed .chips-block.is-open .chip-ghost{opacity:0;transform:scale(.9)}.chip-more-row{flex-wrap:wrap;gap:6px;padding-top:6px;display:flex}.chip-more .chip{position:relative}.chip .scramble-layer{display:inherit;align-items:inherit;padding:inherit;white-space:nowrap}.projects:not(.is-armed) .chip-more{visibility:visible;grid-template-rows:1fr}.projects:not(.is-armed) .chip-more .fold-item{opacity:1;transform:none}@media(max-width:56.25rem){.project-group{grid-template-columns:minmax(0,1fr);gap:8px}.dock-inner{gap:6px;padding-top:0;position:static}.dock-roles{flex-wrap:wrap;gap:2px 14px;display:flex}.projects.is-armed .dock-progress{display:none}}@media(max-width:35rem){:root{--dock-line-h:44px}.project-group{grid-template-areas:"line""roles""sectors""list";row-gap:4px}.group-dock,.dock-inner{display:contents}.group-name,.dock-range,.dock-progress{top:var(--header-h);z-index:3;transition:top var(--dur-4) var(--ease-out);grid-area:line;align-self:start;position:sticky}.group-name{min-height:var(--dock-line-h);z-index:2;background:var(--body);align-items:center;margin-inline:-16px;padding:0 9.5rem 0 16px;display:flex}@supports (color:color-mix(in lab,red,red)){.group-name{background:color-mix(in oklab,var(--body) 86%,transparent)}}.group-name{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.group-link{min-height:var(--dock-line-h);min-width:0;max-width:100%}.group-title{font-size:var(--t-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dock-range,.dock-progress{height:var(--dock-line-h);pointer-events:none;justify-self:end;align-items:center;margin:0;display:flex}.dock-range{margin-right:3.25rem}.projects.is-armed .dock-progress{display:flex}.project-group:has(.dock-open:not(:empty)) .dock-range,.project-group:has(.dock-open:not(:empty)) .dock-count,.dock-bars{display:none}.dock-roles{grid-area:roles}.dock-sectors{grid-area:sectors;margin:0}.group-projects{grid-area:list}:root:has(.app-header.is-hidden) :is(.group-name,.dock-range,.dock-progress){top:0}.project{scroll-margin-top:calc(var(--anchor-offset) + var(--dock-line-h) - var(--scroll-pad))}}@media(max-width:35rem)and (prefers-reduced-motion:reduce){.group-name,.dock-range,.dock-progress{transition:none}}@media(max-width:35rem){:root[data-motion=off] :is(.group-name,.dock-range,.dock-progress){transition:none}.project-group{padding:18px 0 20px}.project{gap:8px;padding:14px 16px 16px 14px}.project .title{font-size:var(--t-body-lg);line-height:1.45}.project .outcome{font-size:var(--t-body-md);line-height:1.5}.projects.is-armed .project.can-open:not(.is-revealing){transition:box-shadow var(--dur-3) var(--ease-out),background-color var(--dur-2) var(--ease-fade)}.projects.is-armed .project.can-open:has(.how-wrap.is-open){box-shadow:var(--shadow-hover);background-color:var(--card)}.projects.is-armed .how-teaser{-webkit-line-clamp:1;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.dock-roles,.dock-sectors{display:none}}@media print{.projects.is-armed .how-wrap:not(.is-open){grid-template-rows:1fr}.projects.is-armed .how-wrap:not(.is-open) .how-clip{opacity:1}.projects.is-armed .chip-ghost,.projects.is-armed .how-teaser,.box-marker,.scramble-layer{display:none}.projects.is-armed .chips-wrap,.projects.is-armed .chips-clip{visibility:visible;display:contents}.projects.is-armed .chips-block>.fold{visibility:visible}.how.is-scrambling .how-text,.chip.is-scrambling .chip-text{color:inherit}.dock-inner{position:static}.projects.is-armed .project-group.is-past :is(.group-dot,.dock-bars){opacity:1}}.chip-fold{cursor:pointer}.chip-fold .fold-fewer,.chip-fold[aria-expanded=true] .fold-more{display:none}.chip-fold[aria-expanded=true] .fold-fewer{display:inline}.tlc{--tlc-top:calc(var(--header-h) + var(--dock-h));display:block}.tlc *{box-sizing:border-box}@media not all and (max-width:56.25rem){.tlc{gap:var(--gap-6);grid-template-columns:minmax(0,1fr) minmax(300px,420px);align-items:start;display:grid}.tlc-col{top:calc(var(--tlc-top) + 16px);position:sticky}.tl-row{scroll-margin-top:calc(var(--anchor-offset) - var(--scroll-pad) + var(--offset) * var(--tl-month) + 34px)}}.tl.is-drawing .tl-lbl,.tl.is-armed .tl-lbl{pointer-events:none}.tl.is-armed .tl-line,.tl.is-armed .tl-bar{transform-origin:top;transform:scaleY(0)}.tl.is-armed .tl-tick,.tl.is-armed .tl-now,.tl.is-armed .lane-title,.tl.is-armed .tl-lbl,.tl.is-armed .tl-lead,.tl.is-armed .tl-node,.tl.is-armed .tl-head{opacity:0}@media print{.tl.is-armed .tl-line,.tl.is-armed .tl-bar{transform:none}.tl.is-armed .tl-tick,.tl.is-armed .tl-now,.tl.is-armed .lane-title,.tl.is-armed .tl-lbl,.tl.is-armed .tl-lead,.tl.is-armed .tl-node,.tl.is-armed .tl-head{opacity:1}}.tl{--tl-month:clamp(2.4px, (var(--vh-100) - var(--tlc-top) - 230px) / var(--tl-months), 4px);--tl-axis:76px;grid-template-columns:minmax(0,calc(var(--wl,1) * 1fr)) var(--tl-axis) minmax(0,calc(var(--wr,1) * 1fr));display:grid;position:relative}.lane-title{font-family:var(--font-mono);font-size:var(--t-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin:0 0 16px;font-weight:400}.lt-left{text-align:right;grid-area:1/1}.lt-right{grid-area:1/3}.tl-track{height:calc(var(--tl-months) * var(--tl-month));position:relative}.tl-left{grid-area:2/1}.tl-right{grid-area:2/3}.tl-axis{grid-area:2/2;position:relative}.tl-line{transform-origin:top;background:linear-gradient(180deg,var(--primary),var(--primary) 20%,var(--border-strong) 70%,var(--border));border-radius:2px;width:2px;position:absolute;top:-6px;bottom:0;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.tl-line{background:linear-gradient(180deg,color-mix(in oklab,var(--primary) 75%,transparent),color-mix(in oklab,var(--primary) 30%,var(--border-strong)) 20%,var(--border-strong) 70%,color-mix(in oklab,var(--border) 60%,transparent))}}.tl-head{background:var(--primary);width:7px;height:7px;box-shadow:0 0 0 5px var(--primary),0 0 22px var(--primary);border-radius:50%;margin:-3.5px 0 0 -3.5px;position:absolute;left:50%}@supports (color:color-mix(in lab,red,red)){.tl-head{box-shadow:0 0 0 5px color-mix(in oklab,var(--primary) 14%,transparent),0 0 22px var(--primary)}}.tl-head{pointer-events:none}.tl-tick{top:calc(var(--offset) * var(--tl-month));border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--body);padding:2px 8px;position:absolute;left:50%;transform:translate(-50%,-50%)}@supports (color:color-mix(in lab,red,red)){.tl-tick{background:color-mix(in oklab,var(--body) 88%,transparent)}}.tl-tick{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:var(--track-mono);color:var(--text-faint);white-space:nowrap;transition:color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade),box-shadow var(--dur-2) var(--ease-fade)}.tl-tick.in-span{color:var(--text);border-color:var(--border-primary-strong);background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.tl-tick.in-span{background:color-mix(in oklab,var(--primary) 12%,var(--body))}}.tl-tick.in-span{box-shadow:0 0 14px var(--accent-glow-2)}.tl-now{top:calc(var(--offset) * var(--tl-month));background:var(--primary);width:9px;height:9px;box-shadow:0 0 0 4px var(--primary),0 0 16px var(--primary);border-radius:50%;margin:-4px 0 0 -4.5px;position:absolute;left:50%}@supports (color:color-mix(in lab,red,red)){.tl-now{box-shadow:0 0 0 4px color-mix(in oklab,var(--primary) 16%,transparent),0 0 16px var(--primary)}}.tl-now:after{content:"";border:1px solid var(--primary);border-radius:50%;position:absolute;inset:-4px}@supports (color:color-mix(in lab,red,red)){.tl-now:after{border:1px solid color-mix(in oklab,var(--primary) 45%,transparent)}}.tl-now:after{animation:tl-pulse var(--dur-pulse) var(--ease-out) infinite}@keyframes tl-pulse{0%{opacity:.9;transform:scale(.7)}70%,to{opacity:0;transform:scale(2.2)}}.tl-row{top:calc(var(--offset) * var(--tl-month));height:calc(var(--m) * var(--tl-month));min-height:34px;width:calc(100% - var(--col) / var(--cols) * 100% - 12px);border-radius:var(--radius-sm);cursor:pointer;pointer-events:none;transition:background-color var(--dur-2) var(--ease-fade);align-content:start;gap:1px;padding:1px 0;display:grid;position:absolute}.tl-left .tl-row{right:calc(var(--col) / var(--cols) * 100%);text-align:right;padding-right:16px;left:auto}.tl-right .tl-row{left:calc(var(--col) / var(--cols) * 100%);padding-left:16px}.tl-row .tl-bar,.tl-row .tl-node{pointer-events:auto}.tl-bar{height:calc(var(--m) * var(--tl-month));transform-origin:bottom;background:linear-gradient(180deg,var(--border-strong),var(--border));width:3px;transition:width var(--dur-3) var(--ease-out),box-shadow var(--dur-2) var(--ease-fade),opacity var(--dur-5) var(--ease-fade);border-radius:3px;position:absolute;top:0}.tl-bar:before{content:"";border-radius:inherit;background:linear-gradient(180deg,var(--primary),var(--primary));position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.tl-bar:before{background:linear-gradient(180deg,var(--primary),color-mix(in oklab,var(--primary) 35%,transparent))}}.tl-bar:before{opacity:0;transition:opacity var(--dur-2) var(--ease-fade)}.tl-left .tl-bar{right:0}.tl-right .tl-bar{left:0}.tl-lead{--lead-len:calc(var(--col) * (100% + 12px) + var(--tl-axis) / 2);height:1px;width:var(--lead-len);background-image:repeating-linear-gradient(90deg,var(--border-strong) 0 3px,transparent 3px 7px);opacity:.7;pointer-events:none;transition:opacity var(--dur-2) var(--ease-fade);position:absolute;top:3px}.tl-lead:before{content:"";background-image:repeating-linear-gradient(90deg,var(--primary) 0 3px,transparent 3px 7px);opacity:0;transition:opacity var(--dur-2) var(--ease-fade);position:absolute;inset:0}.tl-left .tl-lead{right:calc(-1 * var(--lead-len))}.tl-right .tl-lead{left:calc(-1 * var(--lead-len))}.tl-lead:after{content:"";background:var(--border-strong);width:4px;height:4px;transition:background-color var(--dur-2) var(--ease-fade);border-radius:50%;margin-top:-2px;position:absolute;top:50%}.tl-left .tl-lead:after{right:-2px}.tl-right .tl-lead:after{left:-2px}.tl-row.is-clipped .tl-bar{-webkit-mask-image:linear-gradient(#000 0 55%,#0000 100%);mask-image:linear-gradient(#000 0 55%,#0000)}.tl-row.education .tl-bar{background:repeating-linear-gradient(180deg,var(--border-strong) 0 3px,transparent 3px 7px)}.tl-row.education .tl-node{border-style:dashed}.tl-row.shifted:after{content:"";height:var(--shift,0px);background-color:var(--border-strong);opacity:.8;pointer-events:none;width:1px;transition:background-color var(--dur-2) var(--ease-fade),opacity var(--dur-5) var(--ease-fade);position:absolute;top:3px;-webkit-mask-image:repeating-linear-gradient(#000 0 3px,#0000 3px 7px);mask-image:repeating-linear-gradient(#000 0 3px,#0000 3px 7px)}.tl-left .tl-row.shifted:after{right:1px}.tl-right .tl-row.shifted:after{left:1px}.tl-node{background:var(--body);border:1px solid var(--border-strong);width:7px;height:7px;transition:background-color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),box-shadow var(--dur-2) var(--ease-fade),opacity var(--dur-5) var(--ease-fade);border-radius:50%;position:absolute;top:0}.tl-left .tl-node{right:-2px}.tl-right .tl-node{left:-2px}.tl-lbl{min-width:0;font:inherit;color:inherit;text-align:inherit;cursor:pointer;pointer-events:auto;border-radius:var(--radius-sm);background:0 0;border:0;align-content:start;gap:1px;margin-top:-6px;padding:0;display:grid;position:relative}.tl-left .tl-lbl{justify-items:end}.tl-row .tl-lbl{z-index:1}.tl-row:hover .tl-lbl,.tl-row.is-on .tl-lbl{z-index:2}.tl-row .range{min-width:0;font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:var(--track-mono);color:var(--text-faint);white-space:nowrap;text-overflow:clip;transition:color var(--dur-2) var(--ease-fade);overflow:hidden}.tl-row .name{min-width:0;font-size:var(--t-body-md);color:var(--text);text-wrap:balance;transition:color var(--dur-2) var(--ease-fade);font-weight:500;line-height:1.25}.tl-row:hover .tl-bar,.tl-row:focus-within .tl-bar,.tl-row.is-on .tl-bar,.tl-row.is-arrived .tl-bar,.tl-row:target .tl-bar{width:5px;box-shadow:0 0 16px var(--accent-glow)}.tl-row:hover .tl-bar:before,.tl-row:focus-within .tl-bar:before,.tl-row.is-on .tl-bar:before,.tl-row.is-arrived .tl-bar:before,.tl-row:target .tl-bar:before{opacity:1}.tl-row:hover .tl-node,.tl-row:focus-within .tl-node,.tl-row.is-on .tl-node,.tl-row.is-arrived .tl-node,.tl-row:target .tl-node{background:var(--primary);border-color:var(--primary);box-shadow:0 0 12px var(--accent-glow)}.tl-row:hover .tl-lead,.tl-row:focus-within .tl-lead,.tl-row.is-on .tl-lead,.tl-row.is-arrived .tl-lead,.tl-row:target .tl-lead,.tl-row:hover .tl-lead:before,.tl-row:focus-within .tl-lead:before,.tl-row.is-on .tl-lead:before,.tl-row.is-arrived .tl-lead:before,.tl-row:target .tl-lead:before{opacity:1}.tl-row:hover .tl-lead:after,.tl-row:focus-within .tl-lead:after,.tl-row.is-on .tl-lead:after,.tl-row.is-arrived .tl-lead:after,.tl-row:target .tl-lead:after{background:var(--primary)}.tl-row:hover .name,.tl-row:focus-within .name,.tl-row.is-on .name,.tl-row.is-arrived .name,.tl-row:target .name{color:var(--primary)}.tl-row:hover .range,.tl-row:focus-within .range,.tl-row.is-on .range,.tl-row.is-arrived .range,.tl-row:target .range{color:var(--text-dim)}.tl-row.shifted:hover:after,.tl-row.shifted:focus-within:after,.tl-row.shifted.is-on:after,.tl-row.shifted.is-arrived:after,.tl-row.shifted:target:after{background-color:var(--primary);opacity:1}.tl-row.is-current .tl-node{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px var(--primary)}@supports (color:color-mix(in lab,red,red)){.tl-row.is-current .tl-node{box-shadow:0 0 0 4px color-mix(in oklab,var(--primary) 16%,transparent)}}.tl.dim .tl-row:not(.is-on):not(:focus-within) :is(.tl-bar,.tl-lead,.tl-node),.tl.dim .tl-row.shifted:not(.is-on):not(:focus-within):after{opacity:.34}.tl-row:not(.has-projects) .tl-lbl{cursor:default}a.tl-lbl{text-decoration:none}[data-palette=protanopia] :is(.tl-row:hover,.tl-row:focus-within,.tl-row.is-on,.tl-row.is-arrived,.tl-row:target) .name{color:var(--text)}.tlc-col{align-content:start;justify-items:stretch;display:grid}.tlc-side{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--primary) transparent;overflow:hidden auto}@supports (color:color-mix(in lab,red,red)){.tlc-side{scrollbar-color:color-mix(in oklab,var(--primary) 34%,var(--border-strong)) transparent}}.tlc-side{contain:layout paint;max-height:max(220px,calc(var(--vh-100) - var(--tlc-top) - 32px));border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--card);padding:30px 32px 32px}@supports (color:color-mix(in lab,red,red)){.tlc-side{background:color-mix(in oklab,var(--card) 90%,transparent)}}.tlc-side{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-card);transition:height var(--dur-4) var(--ease-out)}.tlc-side::-webkit-scrollbar{width:4px}.tlc-side::-webkit-scrollbar-track{background:0 0}.tlc-side::-webkit-scrollbar-thumb{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.tlc-side::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--primary) 34%,var(--border-strong))}}.tlc-side::-webkit-scrollbar-thumb{border-radius:4px}.tlc-side:hover{scrollbar-color:var(--primary) transparent}@supports (color:color-mix(in lab,red,red)){.tlc-side:hover{scrollbar-color:color-mix(in oklab,var(--primary) 60%,transparent) transparent}}.tlc-side:hover::-webkit-scrollbar-thumb{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.tlc-side:hover::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--primary) 60%,transparent)}}.tlc-side>*{transition:opacity var(--dur-3) var(--ease-fade);margin:0}.tlc-side.is-swapping{overflow:hidden}.tlc-side.is-swapping>*{opacity:0;transition-duration:var(--dur-1)}.sd-kicker{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-dim)}.sd-hd{justify-content:space-between;align-items:baseline;gap:14px;margin-top:12px;display:flex}.sd-name{letter-spacing:-.02em;text-wrap:balance;min-width:0;margin:0;font-size:clamp(1.375rem,2.1vw,1.875rem);font-weight:500;line-height:1.08}.sd-role{font-size:var(--t-body-md);color:var(--text-dim);margin-top:8px;line-height:1.4}.sd-when{border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:var(--track-mono);color:var(--text-dim);margin-top:12px;padding-top:14px}.sd-go{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-dim);white-space:nowrap;transition:color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade);flex:none;align-items:center;gap:7px;padding:7px 12px;display:inline-flex}.sd-go:is(:hover,:focus-visible){color:var(--text);border-color:var(--border-primary);background:var(--accent-glow-2)}.sd-go b{color:var(--text);font-weight:500}.sd-go i{color:var(--primary);font-style:normal}.sd-go[hidden]{display:none}.sd-points{font-size:var(--t-body-sm);color:var(--text);gap:4px;margin-top:14px;padding:0;line-height:1.5;list-style:none;display:grid}.sd-points[hidden]{display:none}.sd-points li{padding-left:16px;position:relative}.sd-points li:before{content:"▸";content:"▸" / "";color:var(--text-dim);font-size:.625rem;line-height:1.3125rem;position:absolute;left:0}.sd-hls{font-size:var(--t-body-sm);justify-items:start;gap:4px;margin-top:10px;padding:0;line-height:1.5;list-style:none;display:grid}.sd-hls[hidden]{display:none}.sd-hl{max-width:100%;min-height:24px;color:var(--text-dim);align-items:baseline;gap:8px;padding-block:2px;text-decoration:none;display:inline-flex}.sd-hl .t{min-width:0;color:var(--text);transition:color var(--dur-2) var(--ease-fade)}.sd-hl i{color:var(--text-dim);flex:none;font-size:.85em;font-style:normal}.sd-hl:is(:hover,:focus-visible) :is(.t,i){color:var(--primary)}.sd-sk{border-radius:var(--radius);transition:background-color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade);border:1px solid #0000;justify-items:start;gap:6px;margin:14px -8px 0;padding:8px;display:grid}.sd-sk[hidden]{display:none}.sd-sk.nosec{margin:18px 0 0;padding:0}.tlc.is-scripted .sd-sk:not(.nosec){cursor:pointer;-webkit-user-select:none;user-select:none}.tlc.is-scripted .sd-sk:not(.nosec):hover,.tlc.is-scripted .sd-sk.open{background:var(--card)}@supports (color:color-mix(in lab,red,red)){.tlc.is-scripted .sd-sk:not(.nosec):hover,.tlc.is-scripted .sd-sk.open{background:color-mix(in oklab,var(--card) 60%,transparent)}}.tlc.is-scripted .sd-sk:not(.nosec):hover,.tlc.is-scripted .sd-sk.open{border-color:var(--border)}@supports selector(:has(*)){.tlc.is-scripted .sd-plus:focus-visible{outline:none}.tlc.is-scripted .sd-sk:has(.sd-plus:focus-visible){outline:var(--focus-ring);outline-offset:var(--focus-offset)}}.sd-chips,.sd-rest{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sd-chips:empty,.sd-plus[hidden]{display:none}.tlc.is-scripted .sd-sk:not(.nosec):hover .sd-plus{color:var(--text);border-color:var(--border-primary)}.tlc:not(.is-scripted) .sd-plus{display:none}.sd-rest-fold{justify-self:stretch}@media(max-height:38.75rem){.tlc-side{padding:24px 26px 22px}}@media(max-width:68.75rem){.tlc-side{padding:26px 26px 24px}}@media(max-width:56.25rem){.tlc{padding-top:8px}.tl{display:block}.tl-axis{display:none}.lane-title{margin:0 0 8px;text-align:left!important}.lt-right{margin-top:32px}.tl-track{height:auto!important}.tl-left .tl-row,.tl-right .tl-row{overflow-anchor:none;text-align:left;border-left:2px solid var(--rule);border-radius:0 var(--radius-sm) var(--radius-sm) 0;pointer-events:auto;width:auto;height:auto;min-height:0;margin-bottom:2px;position:relative;left:auto;right:auto;padding:0!important;top:auto!important}.tl-row.is-on{border-left-color:var(--primary)}.tl-row.is-on .name{color:var(--primary)}.tl-row .range{font-size:var(--t-mono-sm);color:var(--text-dim);order:2}.tl-lbl{width:100%;min-height:44px;margin-top:0;padding:10px 14px}.tl-left .tl-lbl{text-align:left;justify-items:start}.tl-bar,.tl-lead,.tl-node,.tl-row.shifted:after{display:none}.tl-left .tl-row,.tl-right .tl-row{transition:border-color var(--dur-2) var(--ease-fade)}.tl-row:not(.is-on) .tl-lbl:hover{background:var(--text)}@supports (color:color-mix(in lab,red,red)){.tl-row:not(.is-on) .tl-lbl:hover{background:color-mix(in oklab,var(--text) 4%,transparent)}}.tlc-side{max-height:none;margin:28px 0 0;height:auto!important}.tl-row>.tlc-side{cursor:auto;margin:0 0 10px 12px}.tl-row>.tlc-side.is-arriving{animation:tlc-arrive var(--dur-4) var(--ease-out)}}@media(max-width:35rem){.tlc-side{padding:20px 18px}.sd-hd{align-items:center;gap:8px}.sd-go{min-height:44px}.sd-hls{justify-items:stretch;gap:0}.sd-hl{border-bottom:1px solid var(--border);align-items:center;min-height:44px}.sd-hl i{margin-left:auto}}.tl-seg{display:none}@media(max-width:56.25rem){.tlc.is-scripted .tl-seg{flex-wrap:wrap;gap:4px;margin:0 0 12px;display:flex}.tl-seg-btn{border-radius:var(--radius-sm);min-height:44px;font-family:var(--font-mono);text-transform:lowercase;color:var(--text-dim);cursor:pointer;transition:color var(--dur-2) var(--ease-fade),background-color var(--dur-2) var(--ease-fade),border-color var(--dur-2) var(--ease-fade),box-shadow var(--dur-2) var(--ease-fade);background:0 0;border:1px solid #0000;padding:0 12px;font-size:.8125rem;font-weight:500}.tl-seg-btn:before{content:"/";content:"/" / "";color:var(--text-faint);transition:color var(--dur-2) var(--ease-fade);margin-right:2px}.tl-seg-btn:hover{color:var(--text);background:var(--text)}@supports (color:color-mix(in lab,red,red)){.tl-seg-btn:hover{background:color-mix(in oklab,var(--text) 6%,transparent)}}.tl-seg-btn[aria-pressed=true]{color:var(--text);background:var(--tint-active);border-color:var(--border-primary);box-shadow:0 0 0 1px var(--tint-hover),0 0 18px var(--tint-selected)}.tl-seg-btn[aria-pressed=true]:before{color:var(--primary)}.tlc.is-scripted .tl[data-lane] .lane-title,.tlc.is-scripted .tl[data-lane=left] .tl-right,.tlc.is-scripted .tl[data-lane=right] .tl-left{display:none}.tl.is-lane-switched .tl-row{animation:tl-lane-in var(--dur-4) var(--ease-out) backwards;animation-delay:calc(var(--i,0) * var(--stagger))}}@keyframes tlc-arrive{0%{opacity:0;transform:translateY(8px)}}@keyframes tl-lane-in{0%{opacity:0;transform:translateY(8px)}}.skills-cards{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:1px;display:grid;overflow:hidden}.skill-card{background:var(--card);flex-direction:column;gap:12px;padding:22px;display:flex}.skill-card .head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.skill-card .title{font-weight:400;line-height:inherit;font-family:var(--font-mono);font-size:var(--t-body-sm);color:var(--text);letter-spacing:-.01em;margin:0}.skill-card .idx{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:.1em;color:var(--text-dim)}.skill-card .line{display:none}.skill-card .skill-list{align-items:center}.skill-card .code{color:var(--text-dim);font-size:var(--t-body-sm);margin:auto 0 0;line-height:1.6}.skill-card .code-label{font-family:var(--font-mono);font-size:var(--t-mono-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.skill-card .code a{color:var(--text);text-underline-offset:3px;padding-block:3px;text-decoration:underline;display:inline-block}.skill-card .skill-fold{margin-top:-12px}.skill-fold .skill-list{padding-top:12px}.skill-fold .chip.group-start{margin-left:8px}.chip-soft{color:var(--text-dim)}.skill-card .chip:not(.chip-core,.chip-plus),.tlc-side .chip:not(.chip-core,.chip-plus){background:0 0}@media(max-width:35rem){.skill-card{gap:10px;padding:16px}.skill-card .code{display:none}}.btn-label{transition:opacity var(--dur-2) var(--ease-fade);align-items:center;gap:10px;display:inline-flex}.btn-copy{position:relative}.btn-copy .btn-done{opacity:0;transition:opacity var(--dur-2) var(--ease-fade);justify-content:center;align-items:center;gap:8px;display:inline-flex;position:absolute;inset:0}.btn-copy.is-copied .btn-label{opacity:0}.btn-copy.is-copied .btn-done{opacity:1}.btn-icon{color:var(--text-dim);border:1px solid var(--border-strong);background:0 0;padding:10px 12px}.btn-icon:hover{color:var(--text);border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.btn-icon:hover{border-color:color-mix(in oklab,var(--primary) 45%,var(--border-strong))}}.btn-icon:hover{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.btn-icon:hover{background:color-mix(in oklab,var(--primary) 10%,transparent)}}@keyframes arrive{0%{background-color:var(--tint-active);box-shadow:-3px 0 0 0 var(--primary)}60%{background-color:color-mix(in oklab,var(--primary) 14%,transparent);box-shadow:-3px 0 0 0 var(--primary)}to{background-color:#0000;box-shadow:-3px 0 #0000}}.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target{animation:arrive var(--dur-arrive) var(--ease-fade) 1 both}:where(a,button,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);border-radius:var(--radius-sm)}.contact{gap:14px;padding-top:6px;display:grid}.contact p{font-size:var(--t-lead);color:var(--text-dim);max-width:44ch}.contact .hero-actions{margin-top:8px}@media(max-width:35rem){.contact p{font-size:var(--t-body-lg)}}.cta-sheet{inset:auto 8px calc(8px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--shadow-hover);opacity:0;transition:opacity var(--dur-4) var(--ease-fade),transform var(--dur-4) var(--ease-out);gap:2px;margin:0;padding:6px;position:fixed;transform:translateY(16px)}.cta-sheet[open]{display:grid}.cta-sheet.is-open{opacity:1;transform:none}.cta-sheet::backdrop{opacity:0;transition:opacity var(--dur-4) var(--ease-fade);background:#00000073}.cta-sheet.is-open::backdrop{opacity:1}.cta-sheet-item{border-radius:var(--radius-sm);min-height:44px;font:inherit;font-size:var(--t-body);color:var(--text);text-align:left;cursor:pointer;transition:background-color var(--dur-2) var(--ease-fade);background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;text-decoration:none;display:flex}.cta-sheet-item:is(:hover,:focus-visible,:active){background-color:var(--tint-hover)}.cta-sheet-item .arrow{color:var(--primary)}.cta-sheet-close{color:var(--text-dim);justify-content:center}@media(max-width:35rem){.container{padding-inline:18px}}@media(prefers-reduced-motion:reduce){.hero-copy>*,.hero-portrait,.hero-avatar-frame,.hero-portrait .ascii-hero-wrap,.parallax-bg .glow-a,.parallax-bg .glow-b,.tl-now:after,.hl-pane.is-in{animation:none}.fold,.fold-item,.tog,.box-marker,.chip-plus,.tlc-side,.tlc-side>*,.sd-sk,.how-wrap,.how-clip,.how-teaser,.projects.is-armed .chips-block,.project-role,.group-dot,.dock-bars,.dock-roles li,.tl-tick,.tl-bar,.tl-lead,.tl-node,.nav-link,.project-card .foot a,.project-card .gh-arrow,.project-card .gh-mark,.section-dock,.project:before,.dock-bars i:after,.tl-bar:before,.tl-lead:before,.tl-row.shifted:after{transition:none}.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target{background-color:var(--primary);animation:none}@supports (color:color-mix(in lab,red,red)){.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target{background-color:color-mix(in oklab,var(--primary) 16%,transparent)}}.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target{box-shadow:-3px 0 0 0 var(--primary)}}:root[data-motion=off] :is(.hero-copy>*,.hero-portrait,.hero-avatar-frame,.hero-portrait .ascii-hero-wrap,.parallax-bg .glow-a,.parallax-bg .glow-b,.hl-pane.is-in),:root[data-motion=off] .tl-now:after{animation:none}:root[data-motion=off] :is(.fold,.fold-item,.tog,.box-marker,.chip-plus,.tlc-side,.tlc-side>*,.sd-sk,.how-wrap,.how-clip,.how-teaser,.projects.is-armed .chips-block,.project-role,.group-dot,.dock-bars,.dock-roles li,.tl-tick,.tl-bar,.tl-lead,.tl-node,.nav-link,.project-card .foot a,.project-card .gh-arrow,.project-card .gh-mark,.section-dock),:root[data-motion=off] .project:before,:root[data-motion=off] .dock-bars i:after,:root[data-motion=off] .tl-bar:before,:root[data-motion=off] .tl-lead:before,:root[data-motion=off] .tl-row.shifted:after{transition:none}:root[data-motion=off] :is(.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target){background-color:var(--primary);animation:none}@supports (color:color-mix(in lab,red,red)){:root[data-motion=off] :is(.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target){background-color:color-mix(in oklab,var(--primary) 16%,transparent)}}:root[data-motion=off] :is(.project.is-arrived,.project:target,.tl-row.is-arrived,.tl-row:target,.hl-pane.is-arrived,.hl-pane:target){box-shadow:-3px 0 0 0 var(--primary)}@media(prefers-reduced-motion:reduce){.tl.is-lane-switched .tl-row,.dock-open{animation:none}.tl-seg-btn,.projects.is-armed .project.can-open:not(.is-revealing),.projects.is-armed .project.can-open .chips>.chip,.tl-seg-btn:before{transition:none}.cta-sheet{transition:none;transform:none}.tl-row>.tlc-side.is-arriving{animation:none}.tl-lbl,.cta-sheet::backdrop,.nav-link:before,.chip-plus:before,.tl-left .tl-row,.tl-right .tl-row{transition:none}}:root[data-motion=off] :is(.tl.is-lane-switched .tl-row,.dock-open){animation:none}:root[data-motion=off] :is(.tl-seg-btn,.projects.is-armed .project.can-open:not(.is-revealing),.projects.is-armed .project.can-open .chips>.chip),:root[data-motion=off] .tl-seg-btn:before{transition:none}:root[data-motion=off] .cta-sheet{transition:none;transform:none}:root[data-motion=off] .tl-row>.tlc-side.is-arriving{animation:none}:root[data-motion=off] :is(.tl-left .tl-row,.tl-right .tl-row),:root[data-motion=off] .tl-lbl,:root[data-motion=off] .cta-sheet::backdrop,:root[data-motion=off] .nav-link:before,:root[data-motion=off] .chip-plus:before{transition:none}:root{--scroll-pad:calc(var(--header-h) + var(--dock-h) + 12px)}html{scroll-padding-top:var(--scroll-pad)}.skip-link{z-index:1100;border-radius:var(--radius-sm);background:var(--body);color:var(--text);border:1px solid var(--primary);font-family:var(--font-mono);padding:8px 14px;font-size:.8125rem;text-decoration:none;position:fixed;top:8px;left:8px;transform:translateY(calc(-100% - 16px))}.skip-link:focus{transform:none}#main-content:focus{outline:none}@media(max-height:30rem){.section-dock{position:relative;top:auto}:root{--scroll-pad:calc(var(--header-h) + 12px)}}@media(max-width:35rem){.section-dock{position:relative;top:auto}:root{--scroll-pad:calc(var(--header-h) + 12px);--anchor-offset:calc(var(--header-h) + 16px)}:is(.skip-link,.hl-go,.sd-go,.sd-hl,.app-footer a,.chip-plus,.sd-plus){align-items:center;min-height:44px;display:inline-flex}.project-toggle{padding-block:10px}.box-marker{width:44px;height:44px;top:-2px;right:-2px}.title>.box-marker{right:-10px}.chip-plus{background:0 0;border-color:#0000;margin-block:-9px;position:relative}.chip-plus:before{content:"";border:1px dashed var(--border-strong);border-radius:var(--radius-sm);transition:border-color var(--dur-2) var(--ease-fade);pointer-events:none;position:absolute;inset:9px 0}.chip-plus:is(:hover,:focus-visible,[aria-expanded=true]),.tlc.is-scripted .sd-sk:not(.nosec):hover .sd-plus{border-color:#0000}.chip-plus:is(:hover,:focus-visible,[aria-expanded=true]):before,.tlc.is-scripted .sd-sk:not(.nosec):hover .sd-plus:before{border-color:var(--border-primary)}}.app-header{view-transition-name:site-header}::view-transition-old(site-header){display:none}::view-transition-new(site-header){animation:none}::view-transition-group(site-header){animation:none}:root[data-route-swap]{scroll-behavior:auto}:root[data-route-dir]{--route-sign:1;--route-ms:var(--dur-route)}:root[data-route-dir=left]{--route-sign:-1}:root[data-route-dir]::view-transition-old(root){mix-blend-mode:normal;animation-duration:var(--route-ms);animation-timing-function:var(--ease-route);animation-fill-mode:both}:root[data-route-dir]::view-transition-new(root){mix-blend-mode:normal;animation-duration:var(--route-ms);animation-timing-function:var(--ease-route);animation-fill-mode:both}:root[data-route-dir]::view-transition-old(root){animation-name:route-out}:root[data-route-dir]::view-transition-new(root){animation-name:route-in}@keyframes route-out{0%{transform:translate(0)}to{transform:translate(calc(var(--route-sign) * -100%))}}@keyframes route-in{0%{transform:translate(calc(var(--route-sign) * 100%))}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){::view-transition-group(*){animation:none}::view-transition-old(*){animation:none}::view-transition-new(*){animation:none}}:root[data-motion=off]::view-transition-group(*){animation:none}:root[data-motion=off]::view-transition-old(*){animation:none}:root[data-motion=off]::view-transition-new(*){animation:none}@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-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}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
