@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-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"JetBrains Mono",monospace;--font-mono:"JetBrains Mono",monospace;--color-red-400:oklch(70.4% .191 22.216);--color-cyan-400:oklch(78.9% .154 211.53);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-dark-bg:#1d1f21}}@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{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:focus-visible{outline:2px solid var(--site-accent);outline-offset:5px}.skip-link{z-index:100;color:var(--site-on-accent);background:var(--site-accent);padding:.65rem 1rem;position:absolute;top:.75rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}body{background-color:var(--color-dark-bg);color:var(--site-prose-ink);font-family:var(--font-mono)}}@layer components{.prose{text-align:start;overflow-wrap:break-word}.prose p{text-wrap:pretty;border-left:0;margin-bottom:1.5em;margin-left:0;padding-left:0;line-height:1.75}.prose ul{margin-top:1em;margin-bottom:1.5em;margin-left:0;padding-left:1.5rem;list-style-type:disc}.prose ol{margin-top:1em;margin-bottom:1.5em;margin-left:0;padding-left:1.75rem;list-style-type:decimal}.prose li{margin-top:.5em;margin-bottom:.5em;padding-left:.25rem}.prose li::marker{color:#6b7280}.prose blockquote:not(.callout){color:var(--site-prose-body);border-left:3px solid #22d3ee59;margin:1.5rem 0;padding-left:1rem}.prose h1{color:var(--site-prose-ink);margin-bottom:.8em;font-size:2.25em;font-weight:800}.prose h2{color:var(--site-prose-ink);border-bottom:1px solid var(--site-prose-line);margin-top:2.5em;margin-bottom:1em;padding-bottom:.3em;font-size:1.75em;font-weight:700}.prose h3{color:var(--color-cyan-400);margin-top:2em;margin-bottom:.75em;font-size:1.4em;font-weight:600}.prose h4{color:var(--site-prose-heading);margin-top:1.5em;margin-bottom:.5em;font-weight:600}.prose strong{color:var(--site-prose-ink);font-weight:600}.prose code{color:var(--color-cyan-400)}.prose :not(pre)>code{overflow-wrap:anywhere;word-break:break-word}.prose table{border-collapse:collapse;width:max-content;max-width:100%;margin:1.5rem 0;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--site-prose-line);text-align:start;vertical-align:top;padding:.75rem}.prose th{color:var(--site-prose-heading);background-color:var(--site-surface)}.prose img{object-fit:contain;cursor:zoom-in;border-radius:.5rem;width:auto;max-width:100%;margin:2em auto;transition:transform .2s;display:block}.prose a{color:var(--color-cyan-400);text-underline-offset:4px;-webkit-text-decoration:underline #22d3ee4d;text-decoration:underline #22d3ee4d;transition:all .2s}.prose a:hover{-webkit-text-decoration-color:var(--color-cyan-400);text-decoration-color:var(--color-cyan-400);background-color:#22d3ee1a}.callout{background-color:var(--site-surface);border-left:4px solid var(--color-cyan-400);border-radius:.25rem;margin:1.5rem 0;padding:1rem 1rem 1rem 1.5rem;position:relative}.callout-cite{background-color:#f59e0b0d;border-left-color:#f59e0b}.callout-cite:before{content:"❝";color:#f59e0b;opacity:.5;background:var(--color-dark-bg);padding:0 5px;font-size:2rem;line-height:1;position:absolute;top:-10px;left:10px}.callout p{color:var(--site-prose-heading);font-style:italic;border:none!important;margin:0!important;padding:0!important}dialog.lightbox-dialog{background:0 0;border:none;max-width:100vw;max-height:100vh;margin:auto;padding:0;overflow:hidden}dialog.lightbox-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000d9}.lightbox-content{outline:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}#lightbox-img{object-fit:contain;border-radius:4px;max-width:90vw;max-height:90vh;box-shadow:0 0 20px #00000080}#lightbox-close{color:#fff;cursor:pointer;z-index:50;opacity:.7;background:0 0;border:none;font-size:3rem;line-height:1;transition:opacity .2s;position:fixed;top:20px;right:30px}#lightbox-close:hover{opacity:1}}@layer utilities{.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}.right-2{right:calc(var(--spacing)*2)}.bottom-2{bottom:calc(var(--spacing)*2)}.z-10{z-index:10}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.my-8{margin-block:calc(var(--spacing)*8)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-1{margin-left:calc(var(--spacing)*1)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.h-5{height:calc(var(--spacing)*5)}.h-\[400px\]{height:400px}.min-h-screen{min-height:100vh}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[90\%\]{max-width:90%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-blink{animation:1s step-end infinite blink}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.gap-16{gap:calc(var(--spacing)*16)}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-800{border-color:var(--color-gray-800)}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[var\(--color-dark-bg\)\]{background-color:var(--color-dark-bg)}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-gray-800{background-color:var(--color-gray-800)}.p-1{padding:calc(var(--spacing)*1)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:var(--font-mono)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-cyan-400{color:var(--color-cyan-400)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-red-400{color:var(--color-red-400)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--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)}.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,)}.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))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.last\:border-none:last-child{--tw-border-style:none;border-style:none}@media(hover:hover){.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:text-cyan-400:hover{color:var(--color-cyan-400)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-white:hover{color:var(--color-white)}.hover\:opacity-80:hover{opacity:.8}}@media(min-width:40rem){.sm\:mt-1{margin-top:calc(var(--spacing)*1)}.sm\:ml-4{margin-left:calc(var(--spacing)*4)}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}}@media(min-width:48rem){.md\:py-20{padding-block:calc(var(--spacing)*20)}}}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-cyrillic-400-normal.BEIGL1Tu.woff2)format("woff2"),url(/_astro/jetbrains-mono-cyrillic-400-normal.ugxPyKxw.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-greek-400-normal.C190GLew.woff2)format("woff2"),url(/_astro/jetbrains-mono-greek-400-normal.B9oWc5Lo.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/jetbrains-mono-vietnamese-400-normal.CqNFfHCs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--site-ink:#eeeee9;--site-body:#bdc5ca;--site-muted:#929fa8;--site-accent:#67e8f9;--site-accent-hover:#a5f3fc;--site-on-accent:#152126;--site-line:#363d42;--site-surface:#ffffff08;--site-prose-ink:#fff;--site-prose-body:#d1d5db;--site-prose-heading:#e5e7eb;--site-prose-line:#ffffff1a}:root[data-theme=light]{color-scheme:light;--color-dark-bg:#fbf1c7;--site-ink:#3c3836;--site-body:#504945;--site-muted:#665c54;--site-accent:#076678;--site-accent-hover:#005361;--site-on-accent:#fff;--site-line:#83786b;--site-surface:#f2e5bc;--site-surface-raised:#ebdbb2;--site-prose-ink:var(--site-ink);--site-prose-body:var(--site-body);--site-prose-heading:var(--site-ink);--site-prose-line:var(--site-line);--color-white:var(--site-ink);--color-gray-100:var(--site-ink);--color-gray-200:var(--site-ink);--color-gray-300:var(--site-body);--color-gray-400:var(--site-body);--color-gray-500:var(--site-muted);--color-gray-600:var(--site-muted);--color-gray-700:var(--site-line);--color-gray-800:var(--site-surface-raised);--color-gray-900:var(--site-surface);--color-cyan-200:#005361;--color-cyan-300:var(--site-accent);--color-cyan-400:var(--site-accent);--color-cyan-500:#005361;--color-cyan-600:var(--site-accent)}:root[data-theme=light] .bg-white\/5,:root[data-theme=light] .bg-\[rgba\(255\,255\,255\,0\.05\)\]{background-color:var(--site-surface)}:root[data-theme=light] .border-gray-800:not(.network-graph-container){border-color:var(--site-line)}:root[data-theme=light] input::placeholder,:root[data-theme=light] textarea::placeholder{color:var(--site-muted);opacity:1}:root[data-theme=light] .prose li::marker{color:var(--site-muted)}:root[data-theme=light] .prose a{-webkit-text-decoration-color:var(--site-line);text-decoration-color:var(--site-line)}:root[data-theme=light] .prose a:hover{background-color:var(--site-surface)}:root[data-theme=light] .network-graph-container{--color-gray-300:oklch(87.2% .01 258.338);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848)}:root[data-theme=light] .text-cyan-300\/65{color:var(--site-accent)}:root[data-theme=light] .bg-cyan-600.text-white{color:#fff}.code-wrapper{color-scheme:dark;color:#c9d1d9;--color-white:#fff}.code-wrapper pre code{color:#c9d1d9}.theme-toggle{border:1px solid var(--site-line);min-width:44px;min-height:44px;color:var(--site-muted);white-space:nowrap;cursor:pointer;background:0 0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0 10px;line-height:1;display:inline-flex}.theme-toggle:hover{color:var(--site-accent);border-color:var(--site-accent)}.theme-toggle[hidden],.theme-toggle .theme-moon,:root[data-theme=light] .theme-toggle .theme-sun{display:none}:root[data-theme=light] .theme-toggle .theme-moon{display:block}.legacy-header-controls{align-items:center;gap:16px;display:flex}@media(max-width:480px){.legacy-header-controls{gap:10px}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media(prefers-reduced-motion:reduce){.animate-blink{animation:none}}.code-wrapper{background-color:#0d1117;border:1px solid #30363d;border-radius:.5rem;margin:1.5rem 0;overflow:hidden}.code-header{background-color:#161b22;border-bottom:1px solid #30363d;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.code-dots{gap:.5rem;display:flex}.dot{border-radius:50%;width:.75rem;height:.75rem}.dot.red{background-color:#ff5f56}.dot.yellow{background-color:#ffbd2e}.dot.green{background-color:#27c93f}.code-title{color:#8b949e;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8rem;font-weight:600}.copy-btn{color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;transition:all .2s}.copy-btn:hover{color:#c9d1d9;background-color:#30363d}.copy-btn.copied{color:#2ea043;border-color:#2ea043}.code-wrapper pre.astro-code{overflow-x:auto;background-color:#0000!important;border-radius:0!important;margin:0!important;padding:1rem!important}@media print{.skip-link{display:none!important}@page{margin:1cm;size:A4}body{print-color-adjust:exact;-webkit-print-color-adjust:exact;color:#000!important;background-color:#fff!important;font-family:JetBrains Mono,monospace!important;font-size:10pt!important;line-height:1.3!important}header,footer,nav,.terminal-prompt,.no-print,.copy-instruction{display:none!important}h1,h2,h3,h4,p,span,li,a{color:#000!important}h1{margin-bottom:.2rem!important;font-size:20pt!important;line-height:1.2!important}h2{border-bottom:2px solid #000!important;margin-top:1.2rem!important;margin-bottom:.6rem!important;padding-bottom:.1rem!important;font-size:14pt!important}h3{margin-top:.8rem!important;margin-bottom:.2rem!important;font-size:11pt!important}p,li{margin-bottom:.3rem!important;font-size:9pt!important}ul{margin-top:.2rem!important;margin-bottom:.5rem!important}a{color:#000!important;text-decoration:none!important}.print-url{margin-left:.5rem;font-size:.75rem;color:#444!important;display:inline!important}.text-cyan-400{font-weight:700;color:#000!important}.text-gray-400,.text-gray-500,.text-gray-600{color:#333!important}.border-gray-800,.border-gray-700{border-color:#ccc!important}.bg-white\/5,.bg-gray-800,.bg-cyan-400\/10{color:#000!important;background-color:#fff!important;border:1px solid #000!important;padding:.1rem .4rem!important}.print-email-row{align-items:center;gap:.5rem;margin-left:.5rem;color:#000!important;font-family:JetBrains Mono,monospace!important;font-size:.75rem!important;font-weight:400!important;text-decoration:none!important;display:flex!important}.print-email-row svg{width:24px;height:24px;color:#000!important}.flex-col>p:not(.font-mono),.flex-col>ul{padding-left:1rem!important}article,section,.avoid-break,.break-inside-avoid{break-inside:avoid;page-break-inside:avoid}h2,h3{break-after:avoid;page-break-after:avoid}.flex-col.gap-1{break-inside:avoid;page-break-inside:avoid}.gap-10{gap:1.5rem!important}.cv-layout,.gap-6{gap:1rem!important}.code-wrapper{background:0 0!important;border:none!important;margin:0!important;display:none!important}.code-header{display:none!important}code,pre{color:#000!important;background:0 0!important;border:none!important;padding:0!important;font-family:monospace!important;font-size:1rem!important}main{width:100%!important;max-width:100%!important;padding:0!important}}@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-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@font-face{font-family:Geist Pixel Square;src:url(/fonts/GeistPixel-Square.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}.portfolio-shell{--folio-ink: var(--site-ink);--folio-body: var(--site-body);--folio-muted: var(--site-muted);--folio-accent: var(--site-accent);--folio-line: var(--site-line);--folio-meta-compact: 12px;--folio-meta-standard: 13px;--folio-page-title-size: clamp(28px, 5vw, 36px);--folio-intro-size: 15px;--folio-row-size: 14px;width:100%;max-width:780px;padding:36px 32px 28px;color:var(--folio-body);font-size:14px;line-height:1.75;overflow-wrap:anywhere}.portfolio-shell.portfolio-display-font{font-family:Geist Pixel Square,JetBrains Mono,monospace;font-synthesis:none}.portfolio-shell [id]{scroll-margin-top:32px}.portfolio-shell a{text-decoration-thickness:1px;text-underline-offset:5px;transition:color .16s ease,border-color .16s ease,background .16s ease}.portfolio-shell a:hover{color:var(--folio-accent)}.portfolio-shell a:focus-visible,.portfolio-shell button:focus-visible,.portfolio-shell summary:focus-visible{outline:2px solid var(--folio-accent);outline-offset:5px;border-radius:2px}.portfolio-shell h1,.portfolio-shell h2,.portfolio-shell h3{color:var(--folio-ink);text-wrap:balance}.portfolio-shell.portfolio-display-font h1,.portfolio-shell.portfolio-display-font h2,.portfolio-shell.portfolio-display-font h3{font-weight:400;letter-spacing:0}.portfolio-shell h2{font-size:23px;line-height:1.4;font-weight:600;letter-spacing:-.055em}.portfolio-shell.portfolio-display-font h2{font-weight:400;letter-spacing:0}.portfolio-header{margin-bottom:58px}.brand-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.terminal-brand{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--folio-muted);font-size:13px;white-space:nowrap}.terminal-brand>span:first-child{color:var(--folio-accent)}.terminal-cursor{width:7px;height:15px;background:var(--folio-accent);animation:folio-cursor 1.3s step-end infinite}@keyframes folio-cursor{50%{opacity:0}}.header-controls{display:flex;align-items:center;gap:18px}.language-switch{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--folio-muted)}.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:44px}.language-switch [aria-current]{color:var(--folio-accent)}.portfolio-nav{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:14px;border-bottom:1px solid var(--folio-line);font-size:13px;color:var(--folio-body)}.portfolio-display-font .portfolio-nav{font-size:14px;line-height:1.5}.portfolio-nav a{display:inline-flex;align-items:center;min-height:44px;padding-bottom:10px;gap:6px}.portfolio-nav a[aria-current]{color:var(--folio-ink)}.portfolio-sections{display:flex;flex-direction:column;gap:70px}.location-line{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--folio-ink);margin-bottom:18px}.location-dot{width:5px;height:5px;background:var(--folio-muted);flex:none;border-radius:50%}.portfolio-hero h1{font-size:clamp(32px,6.5vw,44px);font-weight:600;line-height:1.15;letter-spacing:-.065em}.name-period{color:var(--folio-accent)}.professional-focus{color:var(--folio-accent);font-size:14px;margin-top:14px;line-height:1.65;max-width:620px}.hero-introduction{color:var(--folio-ink);font-size:16px;line-height:1.85;margin-top:25px;max-width:660px}.hero-context{margin-top:14px;font-size:12px;line-height:1.85;color:var(--folio-muted);max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}.primary-action,.secondary-action{min-height:44px;padding:9px 16px;border:1px solid var(--folio-line);border-radius:4px;font-size:12px;display:inline-flex;align-items:center;gap:10px}.portfolio-shell .primary-action{color:var(--site-on-accent);background:var(--folio-accent);border-color:var(--folio-accent);font-weight:600}.portfolio-shell .primary-action:hover{color:var(--site-on-accent);background:var(--site-accent-hover);border-color:var(--site-accent-hover)}.secondary-action{color:var(--folio-ink)}.secondary-action:hover{border-color:var(--folio-accent)}.social-links{display:flex;align-items:center;gap:20px;margin-left:auto;font-size:11px;color:var(--folio-muted)}.social-links a{display:inline-flex;align-items:center;min-height:44px;gap:8px}.eyebrow{font-size:10px;color:var(--folio-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}.section-heading .eyebrow{font-size:var(--folio-meta-compact);line-height:1.5}.section-description{color:var(--folio-muted);margin-top:12px;font-size:13px;line-height:1.8}.section-heading{margin-bottom:28px}.project-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--folio-line)}.project-row{display:grid;grid-template-columns:25px minmax(0,1fr);gap:14px;padding:19px 0;border-bottom:1px solid var(--folio-line)}.project-number{color:var(--folio-muted);font-size:var(--folio-meta-compact);line-height:1.5;padding-top:2px;font-variant-numeric:tabular-nums}.project-content h3{min-width:0;font-size:16px;line-height:1.5;text-wrap:wrap;overflow-wrap:break-word}.project-content h3 a{display:inline-block;min-height:28px;max-width:100%}.project-name{min-width:0;overflow-wrap:break-word}.link-arrow{display:inline-block;margin-left:8px;color:var(--folio-muted);font-size:14px;transition:transform .16s ease}.project-content h3 a:hover .link-arrow{transform:translate(2px,-2px);color:var(--folio-accent)}.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:9px;font-size:12px;color:var(--folio-muted)}.project-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;white-space:nowrap;color:var(--folio-accent)}.project-live-link{padding:7px 12px;border:1px solid var(--folio-line);border-radius:4px}.project-live-link:hover{border-color:var(--folio-accent)}.preview-indicator{position:relative;width:8px;height:8px;flex:none;border-radius:50%;background:currentColor}.preview-indicator:before{content:"";position:absolute;inset:-3px;border:1px solid currentColor;border-radius:50%;animation:preview-pulse 2.8s ease-out infinite}@keyframes preview-pulse{0%,65%,to{opacity:0;transform:scale(.6)}20%{opacity:.55;transform:scale(1)}}.private-label{display:inline-flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid var(--folio-line);border-radius:4px;background:var(--site-surface);white-space:nowrap;font-size:11px}.project-description{margin-top:5px;font-size:var(--folio-row-size);line-height:1.6}.project-highlight{color:var(--folio-ink);font-size:12px;line-height:1.6;margin-top:8px}.project-highlight>span{color:var(--folio-accent)}.project-stack{display:flex;flex-wrap:wrap;gap:3px 14px;padding:0;margin:9px 0 0;list-style:none;color:var(--folio-body);font-size:12px;line-height:1.6}.project-stack li:not(:last-child):after{content:"/";margin-left:14px;opacity:.65}.section-link{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-size:12px;color:var(--folio-accent)}.explorer-caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;padding:0 0 12px;font-size:var(--folio-meta-compact);line-height:1.6;color:var(--folio-muted)}.note-explorer{border-bottom:1px solid var(--folio-line)}.note-folder{min-width:0}.folder-category{border-top:1px solid var(--folio-line)}.note-folder>summary{display:flex;align-items:center;gap:12px;min-height:48px;padding:14px 4px;cursor:pointer;list-style:none;color:var(--folio-ink)}.note-folder>summary::-webkit-details-marker{display:none}.note-folder>summary:hover{color:var(--folio-accent)}.folder-chevron{flex:none;color:var(--folio-muted);transition:transform .16s ease}.note-folder[open]>summary>.folder-chevron{transform:rotate(90deg)}.folder-icon{flex:none;color:var(--folio-accent)}.folder-icon-open,.note-folder[open]>summary .folder-icon-closed{display:none}.note-folder[open]>summary .folder-icon-open{display:inline}.folder-label{flex:1;font-size:13px}.folder-slash{margin-left:2px;color:var(--folio-muted)}.folder-description{display:block;color:var(--folio-body);font-size:12px;line-height:1.6;font-weight:400;margin-top:2px}.folder-count{font-size:var(--folio-meta-compact);line-height:1.5;color:var(--folio-muted);font-variant-numeric:tabular-nums}.folder-contents{margin:0 0 12px 22px;padding-left:16px;border-left:1px solid var(--folio-line)}.folder-year>summary{padding:4px 0;min-height:40px;gap:8px}.folder-year[data-year-tone=blue]{--folder-year-accent: #8ab4f8}.folder-year[data-year-tone=orange]{--folder-year-accent: #f0ad68}.folder-year[data-year-tone=teal]{--folder-year-accent: #6fc7b5}.folder-year[data-year-tone=violet]{--folder-year-accent: #c5a4e9}:root[data-theme=light] .folder-year[data-year-tone=blue]{--folder-year-accent: #1458a3}:root[data-theme=light] .folder-year[data-year-tone=orange]{--folder-year-accent: #9a4300}:root[data-theme=light] .folder-year[data-year-tone=teal]{--folder-year-accent: #09695d}:root[data-theme=light] .folder-year[data-year-tone=violet]{--folder-year-accent: #744697}.folder-year>summary .folder-label{font-size:11px;color:var(--folder-year-accent, var(--folio-muted))}.folder-year .folder-icon{width:15px;color:var(--folder-year-accent, var(--folio-accent))}.folder-year .folder-contents{margin-left:6px;padding-left:16px}.note-file-list{list-style:none;margin:0;padding:0}.note-file{padding:10px 0 16px}.note-file+.note-file{border-top:1px solid var(--folio-line)}.note-file-heading{display:flex;align-items:baseline;justify-content:space-between;gap:6px 18px}.note-file-link{display:flex;align-items:baseline;gap:9px;min-width:0;min-height:30px;color:var(--folio-ink);font-size:var(--folio-row-size);line-height:1.6}.note-file-link svg{flex:none;color:var(--folio-muted);align-self:flex-start;margin-top:3px}.note-file time{color:var(--folio-body);font-size:var(--folio-meta-compact);line-height:1.5;flex:none;white-space:nowrap}.note-file .pin{color:var(--folio-accent);white-space:nowrap;margin-right:6px}.note-file-description{margin-top:6px;font-size:var(--folio-row-size);line-height:1.6;color:var(--folio-body)}.note-topics{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;column-gap:12px;color:var(--folio-muted);font-size:12px;line-height:1.5;color:var(--folio-body)}.note-topics a{display:inline-flex;align-items:center;min-height:26px;overflow-wrap:anywhere}.empty-folder{font-size:12px;color:var(--folio-muted);padding:12px 0}.creative-copy{display:grid;gap:16px;font-size:13px;line-height:1.95}.creative-copy em{color:var(--folio-accent);font-style:normal}.vault-link{display:flex;align-items:center;gap:20px;padding:22px 0 12px;margin-top:22px;border-top:1px solid var(--folio-line)}.vault-symbol{color:var(--folio-accent);font-size:42px;line-height:1;flex:none}.vault-title{display:block;color:var(--folio-accent);font-size:14px;line-height:1.5}.vault-description{display:block;color:var(--folio-body);font-size:var(--folio-meta-standard);line-height:1.6;margin-top:3px}.vault-disclaimer{font-size:var(--folio-meta-compact);line-height:1.7;color:var(--folio-muted);margin-top:6px}.personal-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:var(--folio-meta-standard);line-height:1.6;margin-top:12px;color:var(--folio-body)}.personal-gallery{margin-top:48px;--photo-mat: #252b2f;--photo-overlap: clamp(6px, 2vw, 16px)}.personal-gallery h2{font-size:16px}.personal-gallery .section-description{margin-top:4px}:root[data-theme=light] .personal-gallery{--photo-mat: var(--site-surface-raised)}.photo-strip{display:flex;flex-wrap:nowrap;align-items:center;list-style:none;padding:45px 0 24px;margin:0}.photo-strip li{position:relative;flex:0 0 calc((100% + (var(--photo-count) - 1) * var(--photo-overlap)) / var(--photo-count));min-width:0}.photo-strip li+li{margin-left:calc(-1 * var(--photo-overlap))}.photo-strip li:nth-child(1){--photo-turn: -12deg;--photo-drop: 13px;z-index:4}.photo-strip li:nth-child(2){--photo-turn: -8deg;--photo-drop: 6px;z-index:3}.photo-strip li:nth-child(3){--photo-turn: -4deg;--photo-drop: 2px;z-index:2}.photo-strip li:nth-child(4){--photo-turn: -1deg;--photo-drop: 0px;z-index:1}.photo-strip li:nth-child(5){--photo-turn: 1deg;--photo-drop: 0px;z-index:1}.photo-strip li:nth-child(6){--photo-turn: 4deg;--photo-drop: 2px;z-index:2}.photo-strip li:nth-child(7){--photo-turn: 8deg;--photo-drop: 6px;z-index:3}.photo-strip li:nth-child(8){--photo-turn: 12deg;--photo-drop: 13px;z-index:4}.photo-strip li:first-child{--caption-x: 0}.photo-strip li:last-child{--caption-x: 0}.photo-strip li:hover,.photo-strip li:focus-within,.photo-strip li:has(.personal-photo[aria-expanded=true]){z-index:10}.personal-photo{appearance:none;position:relative;display:block;width:100%;padding:6px 6px 18px;border:1px solid var(--folio-line);border-radius:2px;background:var(--photo-mat);box-shadow:0 5px 12px #0003;color:var(--folio-ink);font:inherit;cursor:pointer;transform:translateY(var(--photo-drop)) rotate(var(--photo-turn));transform-origin:center bottom;transition:transform .22s ease,box-shadow .22s ease}.photo-image{display:block;aspect-ratio:4 / 5;overflow:hidden}.personal-photo img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;background:var(--photo-mat);filter:saturate(.94) contrast(1.02)}.photo-strip li:nth-child(2) img,.photo-strip li:nth-child(3) img,.photo-strip li:nth-child(5) img,.photo-strip li:nth-child(8) img{object-fit:contain}.photo-strip li:nth-child(2) img{transform:scale(1.45)}.photo-caption{position:absolute;bottom:calc(100% + 8px);left:50%;width:max-content;max-width:min(170px,70vw);padding:4px 8px;border:1px solid var(--folio-line);border-radius:5px;background:var(--photo-mat);box-shadow:0 3px 10px #0002;font-size:11px;text-align:center;line-height:1.4;opacity:0;visibility:hidden;pointer-events:none;transform:translate(var(--caption-x, -50%),4px)}.photo-caption-letter{display:inline-block;opacity:0;transform:translateY(3px)}.personal-photo[aria-expanded=true] .photo-caption{opacity:1;visibility:visible;transform:translate(var(--caption-x, -50%));transition:opacity .12s ease,transform .12s ease}.personal-photo[aria-expanded=true] .photo-caption-letter{opacity:1;transform:translateY(0);animation:photo-caption-reveal .13s ease both;animation-delay:calc(var(--letter-index) * 12ms)}@keyframes photo-caption-reveal{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.photo-strip li:first-child .photo-caption{left:0}.photo-strip li:last-child .photo-caption{right:0;left:auto}.personal-photo[aria-expanded=true],.personal-photo:focus-visible{transform:translateY(calc(var(--photo-drop) - 17px)) rotate(0);box-shadow:0 9px 20px #0004}@media(hover:hover)and (pointer:fine){.personal-photo:hover{transform:translateY(calc(var(--photo-drop) - 17px)) rotate(0);box-shadow:0 9px 20px #0004}}@media(prefers-reduced-motion:reduce){.personal-photo,.photo-caption,.photo-caption-letter,.personal-photo[aria-expanded=true] .photo-caption,.personal-photo[aria-expanded=true] .photo-caption-letter{transition:none;animation:none}}.portfolio-footer{margin-top:70px;padding-top:32px;border-top:1px solid var(--folio-line)}.portfolio-footer h2{font-size:18px}.portfolio-footer>p{margin-top:12px;color:var(--folio-muted);font-size:12px}.action-row{display:flex;flex-wrap:wrap;gap:22px;font-size:12px;margin-top:14px}.action-row a{min-height:44px;display:inline-flex;align-items:center;gap:8px}.text-link{color:var(--folio-accent)}.footer-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;margin-top:46px;color:var(--folio-muted);font-size:12px}.footer-meta a{min-height:44px;display:inline-flex;align-items:center}.archive-heading{margin-bottom:32px}.archive-heading h1{font-size:clamp(28px,5vw,36px);line-height:1.3;font-weight:600;letter-spacing:-.065em}.archive-page .archive-heading h1,.discovery-page h1{font-size:var(--folio-page-title-size);line-height:1.3;font-weight:400;letter-spacing:0}.archive-page .section-description,.discovery-page>.labs-introduction,.discovery-page>p:not(.discovery-eyebrow){color:var(--folio-body);font-size:var(--folio-intro-size);line-height:1.7}.contact-page{max-width:640px}.contact-page .archive-heading{margin-bottom:28px}.contact-page .section-description{font-size:14px;line-height:1.7}.contact-form{display:grid;gap:20px}.contact-field{display:grid;gap:7px}.contact-field label{color:var(--folio-ink);font-size:12px;font-weight:600}.contact-field input,.contact-field textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--folio-line);border-radius:4px;background:var(--site-surface);color:var(--folio-ink);font:inherit;font-size:13px;line-height:1.6}.contact-field textarea{min-height:150px;resize:vertical}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--folio-muted);opacity:1}.contact-field input:focus-visible,.contact-field textarea:focus-visible{outline:2px solid var(--folio-accent);outline-offset:2px;border-color:var(--folio-accent)}.contact-submit{justify-self:start;min-height:44px;padding:9px 16px;border:1px solid var(--folio-accent);border-radius:4px;background:var(--folio-accent);color:var(--site-on-accent);font-size:12px;font-weight:600;cursor:pointer}.contact-submit:hover{background:var(--site-accent-hover);border-color:var(--site-accent-hover)}@media(max-width:600px){.portfolio-shell{padding:24px 24px 16px}.portfolio-header{margin-bottom:38px}.portfolio-nav{gap:20px;font-size:12px}.portfolio-display-font .portfolio-nav{font-size:14px}.portfolio-sections{gap:50px}.hero-introduction{font-size:15px}.hero-context{font-size:11px}.professional-focus{font-size:12px}.hero-actions{gap:10px}.social-links{margin-left:0;flex-basis:100%;gap:22px}.portfolio-shell h2{font-size:21px}.project-row{grid-template-columns:18px minmax(0,1fr);gap:10px;padding:17px 0}.project-description{font-size:var(--folio-row-size)}.project-content h3 a{min-height:36px}.project-stack{gap:3px 10px}.project-stack li:not(:last-child):after{margin-left:10px}.folder-contents{margin-left:10px;padding-left:10px}.folder-year .folder-contents{margin-left:5px;padding-left:10px}.note-file-heading{flex-direction:column;gap:0}.note-file-link{min-height:36px}.note-topics a{min-height:30px}.header-controls{gap:8px}.terminal-brand{font-size:11px;gap:6px}.language-switch a{min-width:26px}.portfolio-footer{margin-top:50px}.photo-strip{--photo-overlap: clamp(3px, 1.2vw, 6px);padding-top:34px;padding-inline:10px}.photo-strip li:nth-child(1){--photo-turn: -6deg;--photo-drop: 5px}.photo-strip li:nth-child(2){--photo-turn: -4deg;--photo-drop: 2px}.photo-strip li:nth-child(3){--photo-turn: -2deg;--photo-drop: 2px}.photo-strip li:nth-child(4){--photo-turn: -.5deg;--photo-drop: 0px}.photo-strip li:nth-child(5){--photo-turn: .5deg;--photo-drop: 0px}.photo-strip li:nth-child(2){--caption-x: 0}.photo-strip li:nth-child(6){--photo-turn: 2deg;--photo-drop: 2px}.photo-strip li:nth-child(7){--photo-turn: 4deg;--photo-drop: 2px}.photo-strip li:nth-last-child(2){--caption-x: 0}.photo-strip li:nth-child(8){--photo-turn: 6deg;--photo-drop: 5px}.photo-strip li:nth-child(2) .photo-caption{left:0}.photo-strip li:nth-last-child(2) .photo-caption{right:0;left:auto}.personal-photo{padding:3px 3px 10px}.personal-photo[aria-expanded=true],.personal-photo:focus-visible{transform:translateY(calc(var(--photo-drop) - 8px)) rotate(0)}@media(hover:hover)and (pointer:fine){.personal-photo:hover{transform:translateY(calc(var(--photo-drop) - 8px)) rotate(0)}}}@media(max-width:359px){.portfolio-shell{padding-inline:18px}.portfolio-nav{gap:12px;font-size:12px}.header-controls{gap:4px}}@media(max-width:340px){.photo-strip{--photo-overlap: 3px;padding-inline:12px}.photo-strip li:nth-child(1){--photo-turn: -5deg}.photo-strip li:nth-child(2){--photo-turn: -3deg}.photo-strip li:nth-child(3){--photo-turn: -1.5deg}.photo-strip li:nth-child(5){--photo-turn: .5deg}.photo-strip li:nth-child(6){--photo-turn: 1.5deg}.photo-strip li:nth-child(7){--photo-turn: 3deg}.photo-strip li:nth-child(8){--photo-turn: 5deg}}@media(prefers-reduced-motion:reduce){.preview-indicator:before{animation:none;opacity:.55;transform:scale(1)}.portfolio-shell *,.portfolio-shell *:before,.portfolio-shell *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.discovery-page{width:100%;max-width:52rem;margin:0 auto;padding:0 0 clamp(2rem,4vw,3rem)}.discovery-page h1{margin:.25rem 0 1rem}.discovery-eyebrow{color:var(--folio-accent);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.labs-introduction{max-width:66ch}.labs-personal{margin-top:clamp(2rem,5vw,3rem)}.labs-personal h2{margin-bottom:1rem;font-size:clamp(1.25rem,3vw,1.6rem);line-height:1.35}.labs-work{margin-top:clamp(2rem,5vw,3rem)}.portfolio-shell .labs-work h2{margin:0 0 12px;color:var(--folio-muted);font-size:14px;line-height:1.5}.labs-tree{margin-left:10px;border-left:1px solid var(--folio-line)}.portfolio-shell .labs-folder{display:flex;align-items:center;gap:9px;min-height:36px;margin:0 0 0 -1px;padding-left:14px;border-left:1px solid transparent;color:var(--folio-accent);font-size:var(--folio-row-size);line-height:1.5}.labs-folder svg{flex:none}.labs-items{margin:0 0 0 26px;padding:0 0 0 16px;border-left:1px solid var(--folio-line);list-style:none}.labs-items li{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;min-width:0;padding:7px 0 7px 6px;font-size:var(--folio-row-size);line-height:1.5}.labs-items li:before{content:"";position:absolute;left:-16px;top:20px;width:14px;border-top:1px solid var(--folio-line)}.labs-item-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 9px;min-width:0}.labs-item-main a{color:var(--folio-ink);overflow-wrap:break-word}.labs-status{display:inline-block;padding:1px 5px;border-radius:3px;background:#b4530926;color:#f2a65a;font-size:12px;line-height:1.5;white-space:nowrap}:root[data-theme=light] .labs-status{background:#b4530920;color:#92400e}.labs-type{flex:none;color:var(--folio-muted);font-size:12px}@media(max-width:480px){.labs-items li{flex-wrap:wrap}.labs-type{margin-left:auto}}
