@layer reset,theme,base,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box}html{font-size:100%;height:100%}body{min-height:100%;scroll-behavior:smooth;text-rendering:optimizeLegibility;-webkit-font-smoothing:subpixel-antialiased}body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{margin:0}.prose>*+*{margin-top:var(--flow)}article>section:not(:first-child)>*:first-child{margin-top:var(--flow)}ul[class],ol[class]{padding:0;list-style:none}a{text-decoration-skip-ink:auto}img{max-width:100%;display:block}svg{fill:currentColor}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){*{animation-play-state:paused!important;transition:none!important;scroll-behavior:auto!important}}}@layer theme{:root{--grass-1: light-dark(#fbfefb, #0e1511);--grass-2: light-dark(#f5fbf5, #141a15);--grass-3: light-dark(#e9f6e9, #1b2a1e);--grass-4: light-dark(#daf1db, #1d3a24);--grass-5: light-dark(#c9e8ca, #25482d);--grass-6: light-dark(#b2ddb5, #2d5736);--grass-7: light-dark(#94ce9a, #366740);--grass-8: light-dark(#65ba74, #3e7949);--grass-9: light-dark(#46a758, #46a758);--grass-10: light-dark(#3e9b4f, #53b365);--grass-11: light-dark(#2a7e3b, #71d083);--grass-12: light-dark(#203c25, #c2f0c2);--grass-a1: light-dark(#00c00004, #00de1205);--grass-a2: light-dark(#0099000a, #5ef7780a);--grass-a3: light-dark(#00970016, #70fe8c1b);--grass-a4: light-dark(#009f0725, #57ff802c);--grass-a5: light-dark(#00930536, #68ff8b3b);--grass-a6: light-dark(#008f0a4d, #71ff8f4b);--grass-a7: light-dark(#018b0f6b, #77fd925d);--grass-a8: light-dark(#008d199a, #77fd9070);--grass-a9: light-dark(#008619b9, #65ff82a1);--grass-a10: light-dark(#007b17c1, #72ff8dae);--grass-a11: light-dark(#006514d5, #89ff9fcd);--grass-a12: light-dark(#002006df, #ceffceef);--olive-1: light-dark(#fcfdfc, #111210);--olive-2: light-dark(#f8faf8, #181917);--olive-3: light-dark(#eff1ef, #212220);--olive-4: light-dark(#e7e9e7, #282a27);--olive-5: light-dark(#dfe2df, #2f312e);--olive-6: light-dark(#d7dad7, #383a36);--olive-7: light-dark(#cccfcc, #454843);--olive-8: light-dark(#b9bcb8, #5c625b);--olive-9: light-dark(#898e87, #687066);--olive-10: light-dark(#7f847d, #767d74);--olive-11: light-dark(#60655f, #afb5ad);--olive-12: light-dark(#1d211c, #eceeec);--olive-a1: light-dark(#00550003, #00000000);--olive-a2: light-dark(#00490007, #f1f2f008);--olive-a3: light-dark(#00200010, #f4f5f312);--olive-a4: light-dark(#00160018, #f3fef21a);--olive-a5: light-dark(#00180020, #f2fbf122);--olive-a6: light-dark(#00140028, #f4faed2c);--olive-a7: light-dark(#000f0033, #f2fced3b);--olive-a8: light-dark(#040f0047, #edfdeb57);--olive-a9: light-dark(#050f0078, #ebfde766);--olive-a10: light-dark(#040e0082, #f0fdec74);--olive-a11: light-dark(#020a00a0, #f6fef4b0);--olive-a12: light-dark(#010600e3, #fdfffded);--widget-primary: light-dark(#1d211c, #eef0ee);--widget-secondary: light-dark(#686e67, #a9ada8);--widget-hint: light-dark(#8d918c, #767d74);--widget-ghost: light-dark(#b0b3af, #5c625b);--widget-accent: light-dark(#464d45, #cad4c7);--widget-symbol: light-dark(#717a6d, #899187);--widget-background: light-dark(#f8faf8, #111210);--widget-container: light-dark(#fcfdfc, #181917);--widget-component: light-dark(#f5f7f5, #212220);--widget-tint: light-dark(hsla(120, 100%, 14%, .0275), hsla(90, 7%, 95%, .0314));--widget-tone: light-dark(hsla(120, 100%, 6%, .0627), hsla(90, 9%, 96%, .0706));--widget-paint: light-dark(hsla(120, 100%, 5%, .1255), hsla(114, 56%, 96%, .1333));--widget-darken: light-dark(hsla(0, 0%, 0%, .04), hsla(0, 0%, 0%, .5));--widget-transparent: light-dark(hsla(0, 0%, 100%, 0), hsla(0, 0%, 0%, 0));--widget-divider: light-dark(#d7dad7, #333632);--widget-divider-subtle: light-dark(#e7ebe7, #272926);--widget-border: light-dark(#cccfcc, #383a36);--widget-border-active: light-dark(#babdba, #474a45);--widget-border-shadow: light-dark(hsla(0, 0%, 0%, .12), hsla(0, 0%, 0%, .5));--widget-ring: light-dark(#a5a8a3, #5c625b);--widget-main: light-dark(#898e87, #4c524a);--widget-main-contrast: light-dark(#fff, #ffffff);--widget-theme: light-dark(#46a758, #46a758);--widget-theme-text: light-dark(#2a7e3b, #87e098)}@supports (color: color(display-p3 1 1 1)){@media(color-gamut:p3){:root{--grass-1: light-dark( color(display-p3 .986 .996 .985), color(display-p3 .062 .083 .067) );--grass-2: light-dark( color(display-p3 .966 .983 .964), color(display-p3 .083 .103 .085) );--grass-3: light-dark( color(display-p3 .923 .965 .917), color(display-p3 .118 .163 .122) );--grass-4: light-dark(color(display-p3 .872 .94 .865), color(display-p3 .142 .225 .15));--grass-5: light-dark( color(display-p3 .811 .908 .802), color(display-p3 .178 .279 .186) );--grass-6: light-dark( color(display-p3 .733 .864 .724), color(display-p3 .217 .337 .224) );--grass-7: light-dark(color(display-p3 .628 .803 .622), color(display-p3 .258 .4 .264));--grass-8: light-dark(color(display-p3 .477 .72 .482), color(display-p3 .302 .47 .305));--grass-9: light-dark(color(display-p3 .38 .647 .378), color(display-p3 .38 .647 .378));--grass-10: light-dark( color(display-p3 .344 .598 .342), color(display-p3 .426 .694 .426) );--grass-11: light-dark( color(display-p3 .263 .488 .261), color(display-p3 .535 .807 .542) );--grass-12: light-dark( color(display-p3 .151 .233 .153), color(display-p3 .797 .936 .776) );--grass-a1: light-dark( color(display-p3 .024 .757 .024 / .016), color(display-p3 0 .992 .071 / .017) );--grass-a2: light-dark( color(display-p3 .024 .565 .024 / .036), color(display-p3 .482 .996 .584 / .038) );--grass-a3: light-dark( color(display-p3 .059 .576 .008 / .083), color(display-p3 .549 .992 .588 / .106) );--grass-a4: light-dark( color(display-p3 .035 .565 .008 / .134), color(display-p3 .51 .996 .557 / .169) );--grass-a5: light-dark( color(display-p3 .047 .545 .008 / .197), color(display-p3 .553 1 .588 / .227) );--grass-a6: light-dark( color(display-p3 .031 .502 .004 / .275), color(display-p3 .584 1 .608 / .29) );--grass-a7: light-dark( color(display-p3 .012 .482 .004 / .377), color(display-p3 .604 1 .616 / .358) );--grass-a8: light-dark( color(display-p3 0 .467 .008 / .522), color(display-p3 .608 1 .62 / .433) );--grass-a9: light-dark( color(display-p3 .008 .435 0 / .624), color(display-p3 .573 1 .569 / .622) );--grass-a10: light-dark( color(display-p3 .008 .388 0 / .659), color(display-p3 .6 .996 .6 / .673) );--grass-a11: light-dark( color(display-p3 .263 .488 .261), color(display-p3 .535 .807 .542) );--grass-a12: light-dark( color(display-p3 .151 .233 .153), color(display-p3 .797 .936 .776) );--olive-1: light-dark( color(display-p3 .989 .992 .989), color(display-p3 .067 .07 .063) );--olive-2: light-dark( color(display-p3 .974 .98 .973), color(display-p3 .095 .098 .091) );--olive-3: light-dark( color(display-p3 .939 .945 .937), color(display-p3 .131 .135 .126) );--olive-4: light-dark( color(display-p3 .907 .914 .905), color(display-p3 .158 .163 .153) );--olive-5: light-dark( color(display-p3 .878 .885 .875), color(display-p3 .186 .192 .18) );--olive-6: light-dark( color(display-p3 .846 .855 .843), color(display-p3 .221 .229 .215) );--olive-7: light-dark(color(display-p3 .803 .812 .8), color(display-p3 .273 .284 .266));--olive-8: light-dark( color(display-p3 .727 .738 .723), color(display-p3 .365 .382 .359) );--olive-9: light-dark( color(display-p3 .541 .556 .532), color(display-p3 .414 .438 .404) );--olive-10: light-dark(color(display-p3 .5 .515 .491), color(display-p3 .467 .49 .458));--olive-11: light-dark( color(display-p3 .38 .395 .374), color(display-p3 .69 .709 .682) );--olive-12: light-dark( color(display-p3 .117 .129 .111), color(display-p3 .927 .933 .926) );--olive-a1: light-dark( color(display-p3 .024 .349 .024 / .012), color(display-p3 0 0 0 / 0) );--olive-a2: light-dark( color(display-p3 .024 .302 .024 / .028), color(display-p3 .984 .988 .976 / .03) );--olive-a3: light-dark( color(display-p3 .008 .129 .008 / .063), color(display-p3 .992 .996 .988 / .068) );--olive-a4: light-dark( color(display-p3 .012 .094 .012 / .095), color(display-p3 .953 .996 .949 / .102) );--olive-a5: light-dark( color(display-p3 .035 .098 .008 / .126), color(display-p3 .969 1 .965 / .131) );--olive-a6: light-dark( color(display-p3 .027 .078 .004 / .157), color(display-p3 .973 1 .969 / .169) );--olive-a7: light-dark( color(display-p3 .02 .059 0 / .2), color(display-p3 .98 1 .961 / .228) );--olive-a8: light-dark( color(display-p3 .02 .059 .004 / .279), color(display-p3 .961 1 .957 / .334) );--olive-a9: light-dark( color(display-p3 .02 .051 .004 / .467), color(display-p3 .949 1 .922 / .397) );--olive-a10: light-dark( color(display-p3 .024 .047 0 / .51), color(display-p3 .953 1 .941 / .452) );--olive-a11: light-dark( color(display-p3 .012 .039 0 / .628), color(display-p3 .976 1 .965 / .688) );--olive-a12: light-dark( color(display-p3 .008 .024 0 / .891), color(display-p3 .992 1 .992 / .929) )}}}}@layer theme{:root{--font-stack-serif: Cardo, Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--font-stack-glyph: Trees, Wingdings, Webdings, Symbol, monospace;--font-weight-normal: 400;--font-weight-bold: 700;--font-size-smaller: .875em;--line-height: 1.6;color-scheme:light dark;--clr-neutral-primary: var(--olive-12);--clr-neutral-secondary: color-mix(in oklch, var(--olive-11) 80%, var(--olive-12));--clr-neutral-border: var(--olive-10);--clr-neutral-background: var(--olive-1);--clr-neutral-surface: var(--olive-2);--clr-neutral-main: var(--olive-9);--clr-theme-primary: var(--grass-12);--clr-theme-secondary: var(--grass-11);--clr-theme-border: var(--grass-9);--clr-theme-background: var(--grass-3);--clr-theme-surface: var(--grass-4);--clr-theme-main: var(--grass-9);--clr-primary: var(--clr-neutral-primary);--clr-secondary: var(--clr-neutral-secondary);--clr-border: var(--clr-neutral-border);--clr-background: color-mix( in oklch, var(--clr-neutral-background) 95%, var(--clr-theme-background) );--clr-surface: var(--clr-neutral-surface);--clr-main: var(--clr-theme-main);--clr-link: color-mix(in oklch, var(--clr-theme-secondary) 50%, var(--clr-theme-primary));--major-gridline-color: color-mix(in srgb, var(--widget-divider) 33%, transparent);--minor-gridline-color: color-mix(in srgb, var(--widget-divider-subtle) 33%, transparent)}.themed{--clr-primary: var(--clr-theme-primary);--clr-secondary: var(--clr-theme-secondary);--clr-border: var(--clr-theme-border);--clr-background: var(--clr-theme-background);--clr-surface: var(--clr-theme-surface)}.portfolio-widget *{transition:fill .2s ease-in-out,stroke .2s ease-in-out}.portfolio-widget .fill-primary{fill:var(--widget-primary)}.portfolio-widget .fill-secondary{fill:var(--widget-secondary)}.portfolio-widget .fill-hint{fill:var(--widget-hint)}.portfolio-widget .fill-ghost{fill:var(--widget-ghost)}.portfolio-widget .fill-accent{fill:var(--widget-accent)}.portfolio-widget .fill-symbol{fill:var(--widget-symbol)}.portfolio-widget .fill-background{fill:var(--widget-background)}.portfolio-widget .fill-container{fill:var(--widget-container)}.portfolio-widget .fill-component{fill:var(--widget-component)}.portfolio-widget .fill-tint{fill:var(--widget-tint)}.portfolio-widget .fill-tone{fill:var(--widget-tone)}.portfolio-widget .fill-paint{fill:var(--widget-paint)}.portfolio-widget .fill-darken{fill:var(--widget-darken)}.portfolio-widget .fill-transparent{fill:var(--widget-transparent)}.portfolio-widget .stroke-shadow{stroke:var(--widget-shadow)}.portfolio-widget .stroke-divider{stroke:var(--widget-divider)}.portfolio-widget .fill-divider{fill:var(--widget-divider)}.portfolio-widget .stroke-divider-subtle{stroke:var(--widget-divider-subtle)}.portfolio-widget .fill-divider-subtle{fill:var(--widget-divider-subtle)}.portfolio-widget .stroke-border{stroke:var(--widget-border)}.portfolio-widget .fill-border{fill:var(--widget-border)}.portfolio-widget .stroke-border-active{stroke:var(--widget-border-active)}.portfolio-widget .fill-border-active{fill:var(--widget-border-active)}.portfolio-widget .stroke-border-shadow{stroke:var(--widget-border-shadow)}.portfolio-widget .stroke-ring{stroke:var(--widget-ring)}.portfolio-widget .fill-ring{fill:var(--widget-ring)}.portfolio-widget .stroke-main{stroke:var(--widget-main)}.portfolio-widget .fill-main{fill:var(--widget-main)}.portfolio-widget .stroke-main-contrast{stroke:var(--widget-main-contrast)}.portfolio-widget .fill-main-contrast{fill:var(--widget-main-contrast)}.portfolio-widget .stroke-theme{stroke:var(--widget-theme)}.portfolio-widget .fill-theme{fill:var(--widget-theme)}.portfolio-widget .stroke-theme-text{stroke:var(--widget-theme-text)}.portfolio-widget .fill-theme-text{fill:var(--widget-theme-text)}.portfolio-widget:hover .fill-primary{fill:var(--grass-12)}.portfolio-widget:hover .fill-secondary{fill:var(--grass-11)}.portfolio-widget:hover .fill-hint{fill:var(--grass-10)}.portfolio-widget:hover .fill-ghost{fill:var(--grass-9)}.portfolio-widget:hover .fill-accent,.portfolio-widget:hover .fill-symbol{fill:var(--grass-11)}.portfolio-widget:hover .fill-background{fill:var(--grass-1)}.portfolio-widget:hover .fill-container{fill:var(--grass-2)}.portfolio-widget:hover .fill-component{fill:var(--grass-3)}.portfolio-widget:hover .fill-tint{fill:var(--grass-a2)}.portfolio-widget:hover .fill-tone{fill:var(--grass-a3)}.portfolio-widget:hover .fill-paint{fill:var(--grass-a4)}.portfolio-widget:hover .fill-darken{fill:var(--widget-darken)}.portfolio-widget:hover .fill-transparent{fill:var(--widget-transparent)}.portfolio-widget:hover .stroke-shadow{stroke:var(--widget-shadow)}.portfolio-widget:hover .stroke-divider{stroke:var(--grass-5)}.portfolio-widget:hover .fill-divider{fill:var(--grass-5)}.portfolio-widget:hover .stroke-divider-subtle{stroke:var(--grass-4)}.portfolio-widget:hover .fill-divider-subtle{fill:var(--grass-4)}.portfolio-widget:hover .stroke-border{stroke:var(--grass-6)}.portfolio-widget:hover .fill-border{fill:var(--grass-6)}.portfolio-widget:hover .stroke-border-active{stroke:var(--grass-8)}.portfolio-widget:hover .fill-border-active{fill:var(--grass-8)}.portfolio-widget:hover .stroke-border-shadow{stroke:var(--widget-border-shadow)}.portfolio-widget:hover .stroke-ring{stroke:var(--grass-9)}.portfolio-widget:hover .fill-ring{fill:var(--grass-9)}.portfolio-widget:hover .stroke-main{stroke:var(--grass-9)}.portfolio-widget:hover .fill-main{fill:var(--grass-9)}.portfolio-widget:hover .stroke-main-contrast{stroke:var(--widget-main-contrast)}.portfolio-widget:hover .fill-main-contrast{fill:var(--widget-main-contrast)}.portfolio-widget:hover .stroke-theme{stroke:var(--grass-9)}.portfolio-widget:hover .fill-theme{fill:var(--grass-9)}.portfolio-widget:hover .stroke-theme-text{stroke:var(--grass-11)}.portfolio-widget:hover .fill-theme-text{fill:var(--grass-11)}}@layer base{:root{--max-grid-size: 32px;--min-grid-size: 24px;--max-font-size: 20px;--min-font-size: 12px;--small-scale: .75;--app-full-width: calc(2304px + 2 * var(--max-grid-size));--app-small-width: calc(var(--app-full-width) * var(--small-scale));--fluid-width: clamp(var(--min-font-size), 0px + .6757dvw, var(--max-font-size));--app-full-height: calc(1540px + 2 * var(--max-grid-size));--app-small-height: calc(var(--app-full-height) * var(--small-scale));--fluid-height: clamp(var(--min-font-size), 0px + 1dvh, var(--max-font-size))}html{background-color:var(--clr-background);font-size:max(var(--fluid-width),var(--fluid-height))}@media print{body{color:#000;background-color:#fff}}html,body{height:100%}body{line-height:var(--line-height);font-family:var(--font-stack-serif);font-weight:var(--font-weight-normal);color:var(--clr-primary);letter-spacing:.01em}h1{font-size:2.1em;line-height:1.3;font-weight:var(--font-weight-normal)}h2{--flow: 2em;font-size:1.5em;line-height:1.4;font-weight:var(--font-weight-normal)}h3,h4{--flow: 2em;font-size:1em;line-height:1.5;font-weight:var(--font-weight-bold)}table{border-collapse:collapse;line-height:1.5;font-variant-numeric:tabular-nums}tr{border-bottom:1px solid var(--clr-faint-2)}th{vertical-align:bottom;font-weight:var(--font-weight-normal);font-size:var(--font-size-smaller);color:var(--clr-secondary)}td{vertical-align:baseline}th,td{padding:6px .75rem 6px 0;text-align:left}th:last-child,td:last-child{padding-right:0}blockquote{--flow: 2em;font-style:italic;padding:0 calc(2 * var(--body-padding));margin-bottom:var(--flow)}strong,.strong{font-weight:var(--font-weight-bold)}small,.small{font-size:var(--font-size-smaller)}a,.link{color:var(--clr-link);fill:currentColor}:is(a,.link):has(.icon){display:inline-flex;align-items:center;gap:.33em}.icon{aspect-ratio:1;display:inline-block;width:1.2cap;height:1.2cap}}@layer utilities{.symbol,.trees{font-family:var(--font-stack-glyph);text-transform:uppercase;letter-spacing:2px}.boxed{border:var(--border)}.centered{display:flex;flex-direction:column;justify-content:center;justify-self:center;text-align:center}.secondary{color:var(--clr-secondary)}}.light,html:not(:is(.light,.dark)):has(head>meta.light){color-scheme:light}:is(.light,html:not(:is(.light,.dark)):has(head>meta.light)) .icon-moon{display:none}.dark,html:not(:is(.light,.dark)):has(head>meta.dark){color-scheme:dark}:is(.dark,html:not(:is(.light,.dark)):has(head>meta.dark)) .icon-sun{display:none}@media(prefers-color-scheme:light),(prefers-color-scheme:no-preference){html:not(:is(.light,.dark)) .icon-moon{display:none}}@media(prefers-color-scheme:dark){html:not(:is(.light,.dark)) .icon-sun{display:none}}.node--widget svg{fill:transparent;width:100%;height:100%}.background-grid{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.root{position:fixed;inset:0;overflow:auto;display:flex;flex-direction:column;container-type:inline-size;container-name:root;transition:opacity 1s ease-in-out;opacity:0}.root.loaded{opacity:1}.profile-container{container-type:inline-size;container-name:profile}@container root (width > 64rem){.small-only{display:none}.node--widget{opacity:.75;transition:opacity .3s ease}.node--widget:hover{opacity:1}.layout-canvas{position:absolute;width:calc(var(--content-width-lg) + 4rem);height:calc(var(--content-height-lg) + 4rem)}.widgets-container-wrapper{display:contents}.widgets-container,.profile-container{position:absolute;inset-inline-start:2rem;inset-block-start:2rem;width:var(--content-width-lg);height:var(--content-height-lg)}.node,.profile-node{position:absolute;inset-inline-start:var(--node-x-lg, 0);inset-block-start:var(--node-y-lg, 0);width:var(--node-width, 100%);height:var(--node-height, 100%)}}@container root (width <= 64rem){.large-only{display:none}.root{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}.profile{padding:3rem;border-inline:none;border-block-start:none}.layout-canvas:has(.profile){display:block;width:100%;flex:0 0 auto;height:auto}.node{position:absolute;inset-inline-start:var(--node-x-sm, 0);inset-block-start:var(--node-y-sm, 0);width:var(--node-width, 100%);height:var(--node-height, 100%)}.layout-canvas:has(.widgets-container){position:relative;width:calc(var(--content-width-sm) + 4rem);height:calc(var(--content-height-sm) + 4rem)}.layout-canvas:has(.widgets-container) .widgets-container{position:absolute;inset-inline-start:2rem;inset-block-start:2rem;width:var(--content-width-sm);height:var(--content-height-sm)}.widgets-container-wrapper{display:block;flex:0 1 auto;min-height:calc(100dvh * 2 / 3);overflow:auto;border:1px solid var(--widget-divider);border-radius:.25rem}}
