.svelte-89nm50,.svelte-89nm50:before,.svelte-89nm50:after{box-sizing:border-box}.svelte-89nm50{margin:0}button.svelte-89nm50{font:inherit}html[data-theme=light] .moon,html[data-theme=dark] .sun{display:none}button.svelte-89nm50{width:44px;height:44px;display:flex;justify-content:center;align-items:center;border-radius:4px;cursor:pointer;overflow:hidden}button.svelte-89nm50 span:where(.svelte-89nm50){will-change:transform}button.svelte-89nm50>:where(.svelte-89nm50){transition:transform .3s cubic-bezier(.25,.1,.25,1)}button.svelte-89nm50:hover>:where(.svelte-89nm50){transform:scale(1.2)}.flex.svelte-89nm50{display:flex;align-items:center}.flex.svelte-89nm50>span:where(.svelte-89nm50):last-child{margin-left:auto;color:var(--grey-text)}@media (min-width: 48rem){.flex.svelte-89nm50>span:where(.svelte-89nm50){display:none}}.svelte-13i2jg0,.svelte-13i2jg0:before,.svelte-13i2jg0:after{box-sizing:border-box}.svelte-13i2jg0{margin:0}svg.svelte-13i2jg0{display:block;max-width:100%}svg.svelte-13i2jg0{transition:transform .3s cubic-bezier(.25,.1,.25,1)}svg.svelte-13i2jg0:hover{transform:scale(1.2)}.svelte-1rcw34i,.svelte-1rcw34i:before,.svelte-1rcw34i:after{box-sizing:border-box}.svelte-1rcw34i{margin:0}button.svelte-1rcw34i{font:inherit}#root.svelte-1rcw34i,#__next.svelte-1rcw34i{isolation:isolate}.headerWrap.svelte-1rcw34i{display:grid;align-items:center;border-bottom:1px dotted var(--grid-color);grid-template-areas:"a c" "b b"}.headerWrap.svelte-1rcw34i a:where(.svelte-1rcw34i){color:var(--text);text-decoration:none}.headerWrap.svelte-1rcw34i a:where(.svelte-1rcw34i):hover,.headerWrap.svelte-1rcw34i a:where(.svelte-1rcw34i):focus{text-decoration:underline}.headerWrap.svelte-1rcw34i .me:where(.svelte-1rcw34i){font-weight:700}.headerWrap.svelte-1rcw34i .me:where(.svelte-1rcw34i):hover{text-decoration:none}.gridOff :is(header.svelte-1rcw34i,.headerWrap.svelte-1rcw34i){border-color:#0000}.me.svelte-1rcw34i{grid-area:a}.menu.svelte-1rcw34i{grid-area:b}.hamburger.svelte-1rcw34i{grid-area:c;justify-self:right;align-self:center}.headerWrap.svelte-1rcw34i{--navTop: 13rem;position:relative}.headerWrap.svelte-1rcw34i .menu:where(.svelte-1rcw34i){position:absolute;display:flex;flex-direction:column;width:100%;transform:translate3d(-110%,var(--navTop),0);transition:none;background:var(--background-color);border:1px dotted var(--grid-color);visibility:hidden}.headerWrap.svelte-1rcw34i .menu.isAnimated:where(.svelte-1rcw34i){visibility:visible;z-index:1}.headerWrap.slideMenuIn.svelte-1rcw34i .menu:where(.svelte-1rcw34i){animation:svelte-1rcw34i-slideInWithBounce .5s forwards}.headerWrap.svelte-1rcw34i:not(.slideMenuIn) .menu:where(.svelte-1rcw34i){animation:svelte-1rcw34i-slideOutWithBounce .5s forwards}nav.svelte-1rcw34i{display:flex;flex-direction:column;padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px dotted var(--grid-color)}nav.svelte-1rcw34i a:where(.svelte-1rcw34i){display:block;padding:.4rem 0;font-size:var(--step-3);font-weight:600}.settings.svelte-1rcw34i{display:flex;flex-direction:column;border-top:1px dotted var(--grid-color);padding:1.5rem 0}.settings.svelte-1rcw34i .flex:where(.svelte-1rcw34i){display:flex;align-items:center}.settings.svelte-1rcw34i .flex:where(.svelte-1rcw34i) span:where(.svelte-1rcw34i):last-child{margin-left:auto;color:var(--grey-text)}.settings.svelte-1rcw34i button:where(.svelte-1rcw34i){width:44px;height:44px;display:flex;justify-content:center;align-items:center;border-radius:4px;cursor:pointer;overflow:hidden}.hamburger.svelte-1rcw34i button:where(.svelte-1rcw34i){width:44px;height:44px;display:flex;justify-content:center;align-items:center;border-radius:4px;cursor:pointer;overflow:hidden}.gridOff :is(.menu.svelte-1rcw34i,nav.svelte-1rcw34i,.settings.svelte-1rcw34i){border-color:#0000}@media (min-width: 48rem){.headerWrap.svelte-1rcw34i{grid-template-areas:"a b"}.headerWrap.svelte-1rcw34i .menu:where(.svelte-1rcw34i){--navTop: 24px;position:relative;padding:0;visibility:visible;transform:none;background:none;animation:none;box-shadow:none;border:none;align-items:center;justify-content:space-between;flex-direction:row}.headerWrap.slideMenuIn.svelte-1rcw34i .menu:where(.svelte-1rcw34i){animation:none}.headerWrap.svelte-1rcw34i:not(.slideMenuIn) .menu:where(.svelte-1rcw34i){animation:none}.headerWrap.svelte-1rcw34i a:where(.svelte-1rcw34i){font-size:var(--step--1);font-weight:400}.headerWrap.svelte-1rcw34i nav:where(.svelte-1rcw34i){flex-direction:row;gap:2rem;padding:0;margin:0;border:none}.headerWrap.svelte-1rcw34i .settings:where(.svelte-1rcw34i){flex-direction:row;padding:0;border:none}.headerWrap.svelte-1rcw34i .settings:where(.svelte-1rcw34i) .flex:where(.svelte-1rcw34i) span:where(.svelte-1rcw34i){display:none}nav.svelte-1rcw34i{flex-direction:row;gap:2rem}.hamburger.svelte-1rcw34i{display:none}}nav[aria-hidden=false].svelte-1rcw34i{visibility:visible;opacity:1}@keyframes svelte-1rcw34i-slideInWithBounce{0%{transform:translate3d(-110%,var(--navTop),0)}60%{transform:translate3d(4%,var(--navTop),0)}80%{transform:translate3d(-2%,var(--navTop),0)}to{transform:translate3d(0,var(--navTop),0)}}@keyframes svelte-1rcw34i-slideOutWithBounce{0%{transform:translate3d(0,var(--navTop),0)}20%{transform:translate3d(4%,var(--navTop),0)}40%{transform:translate3d(-2%,var(--navTop),0)}to{transform:translate3d(-110%,var(--navTop),0)}}.svelte-1m589oc,.svelte-1m589oc:before,.svelte-1m589oc:after{box-sizing:border-box}.svelte-1m589oc{margin:0}p.svelte-1m589oc,h3.svelte-1m589oc{overflow-wrap:break-word}p.svelte-1m589oc{text-wrap:pretty}h3.svelte-1m589oc{text-wrap:balance}footer.svelte-1m589oc{margin-top:6rem;border-top:1px dotted var(--grid-color)}.wrapper.svelte-1m589oc{margin-top:1.5rem;border-top:1px dotted var(--grid-color)}.gridOff :is(footer.svelte-1m589oc,.wrapper.svelte-1m589oc){border-color:#0000}.wrapper.svelte-1m589oc{display:grid;gap:1.5rem;grid-template-areas:"pages connect" "links connect" "bio  bio";grid-template-columns:repeat(2,minmax(0,1fr))}.wrapper.svelte-1m589oc h3:where(.svelte-1m589oc),.wrapper.svelte-1m589oc p:where(.svelte-1m589oc){font-size:var(--step--1)}.wrapper.svelte-1m589oc h3:where(.svelte-1m589oc){margin-bottom:1.5rem}.wrapper.svelte-1m589oc .bio:where(.svelte-1m589oc) h3:where(.svelte-1m589oc){font-size:var(--step-0)}.wrapper.svelte-1m589oc p:where(.svelte-1m589oc){margin-top:.5rem}.wrapper.svelte-1m589oc a:where(.svelte-1m589oc){color:var(--text-color)}.wrapper.svelte-1m589oc a:where(.svelte-1m589oc):hover,.wrapper.svelte-1m589oc a:where(.svelte-1m589oc):focus{background-size:0 2px,100% 2px}.wrapper.svelte-1m589oc .smallText:where(.svelte-1m589oc){margin-top:2rem;font-size:var(--step--2);color:var(--textLight)}@media (min-width: 37.5rem){.wrapper.svelte-1m589oc{grid-template-areas:"pages links connect ." "bio  bio bio .";grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 50rem){.wrapper.svelte-1m589oc{grid-template-areas:"pages pages links links connect connect" "bio  bio bio bio . .";grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width: 73.25rem){.wrapper.svelte-1m589oc{grid-template-areas:"pages links connect . bio bio bio bio";grid-template-columns:repeat(8,minmax(0,1fr))}}.bio.svelte-1m589oc,.pages.svelte-1m589oc,.links.svelte-1m589oc,.connect.svelte-1m589oc{min-width:0;width:100%;margin-bottom:1.5rem}.bio.svelte-1m589oc{grid-area:bio}.bio.svelte-1m589oc span:where(.svelte-1m589oc){display:inline-block}.pages.svelte-1m589oc{grid-area:pages}.links.svelte-1m589oc{grid-area:links}.connect.svelte-1m589oc{grid-area:connect}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal.B2xhLi22.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal.CMZtQduZ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal.CGAr0uHJ.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal.CaVNZxsx.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal.CFHvXkgd.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal.C2S99t-D.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Frank Ruhl Libre;font-style:normal;font-display:swap;font-weight:700;src:url(./frank-ruhl-libre-hebrew-700-normal.BrM2yQdn.woff2) format("woff2"),url(./frank-ruhl-libre-hebrew-700-normal.JRk5yFna.woff) format("woff");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Frank Ruhl Libre;font-style:normal;font-display:swap;font-weight:700;src:url(./frank-ruhl-libre-latin-ext-700-normal.DzSy9wR7.woff2) format("woff2"),url(./frank-ruhl-libre-latin-ext-700-normal.B9Au1q6-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Frank Ruhl Libre;font-style:normal;font-display:swap;font-weight:700;src:url(./frank-ruhl-libre-latin-700-normal.CS_SF9vb.woff2) format("woff2"),url(./frank-ruhl-libre-latin-700-normal.D2sP3_UC.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}html[data-theme=dark]{color-scheme:dark;--grid-color: #00D9FF30;--background-color: #222;--text: #FFF;--textLight: rgba(255, 255, 255, .4);--table-bg: #222222;--table-row-bg: #2a2a2a;--code-background: #5d5d5d;--code-border-color: #b0b0b0;--grey-text: #5b5b5b;--orange: var(--pastel-orange);--link-color: rgba(184, 223, 230, 1);--link-bg: rgba(184, 223, 230, .3);--link-bg-hover: rgba(184, 223, 230, .2)}html{scroll-behavior:smooth}body{font-size:var(--ff-default-size);font-family:var(--ff-family),serif;background-color:var(--background-color);transition:background-color .3s ease,color .3s ease;color:var(--text)}.page{display:flex;justify-content:center}.container{max-width:1440px;width:100%;padding:0 1rem;min-height:100vh}.gridLines{--col-count: 2;--gap: 1.5rem;--line-width: 1px;--col-width: calc((100% - (var(--gap) * (var(--col-count) - 1))) / var(--col-count));display:flex;flex-direction:column;position:relative;min-height:100%;padding:1rem 0;background-image:repeating-linear-gradient(to right,transparent var(--col-width),var(--grid-color) calc(var(--col-width) + var(--line-width)),transparent var(--col-width) calc(var(--col-width) + var(--gap)),var(--grid-color) calc(var(--col-width) + var(--gap)),transparent calc(var(--col-width) + var(--gap) + var(--line-width)),transparent calc(100% - (var(--col-width) + var(--gap)) * (var(--col-count) - 2)))}.gridLines:after{content:"";position:absolute;top:0;bottom:0;right:0;width:1px;background:var(--grid-color);opacity:.5}h1{font-size:var(--step-4);line-height:1.2;margin-top:2rem}p,ul,li{margin-top:1.5rem;font-size:var(--step-0);line-height:1.5}a{color:var(--text-color);text-decoration:underline;text-underline-offset:.25rem}a:hover,a:focus{text-decoration-style:solid}.visually-hidden{display:none}button>svg{pointer-events:none}button.clean{border:none;background:none;padding:0;cursor:pointer}.hidden{display:none}@media (min-width: 500px){.gridLines{--col-count: 4}}@media (min-width: 800px){.container{padding:0 2rem}.gridLines{--col-count: 6}}@media (min-width: 1172px){.container{padding:0 4rem}.gridLines{--col-count: 8}}.post{display:flex;align-items:center;flex-direction:column}.post code:not(table code){position:relative;padding:0 .5rem;display:inline-block;top:-1px;color:var(--text);line-height:1.5;border-radius:.25rem;border:1px solid var(--code-border-color);font-size:var(--step--1);font-family:var(--ff-code),serif;background:var(--code-background)}.post .codePen{margin-top:1rem}.post .w50{width:100%}@media (min-width: 37.5rem){.post .w50{width:50%}}.post>div{max-width:var(--post-width);width:100%}.post>div.large{max-width:var(--post-l-width);width:100%}.post h3{margin-top:2rem;font-size:var(--step-3)}.post p{margin-top:1rem}.post p img{margin-inline:auto}.post p:has(img){margin:2rem 0;gap:1.5rem}.post ul{margin-top:1rem}.post tbody,.post td{background:var(--table-bg)}.post tr:nth-child(2n){background-color:var(--table-row-bg)}.post tr:nth-child(2n) td{background:transparent}.post table tr:last-child td{padding-bottom:0}.post a{padding:0 4px;border-radius:2px;font-size:var(--step-0);color:var(--link-color);background:var(--link-bg);transition:background-color .2s}.post a:hover,.post a:focus{background-color:var(--link-bg-hover)}.svelte-1d9zwmq,.svelte-1d9zwmq:before,.svelte-1d9zwmq:after{box-sizing:border-box}.svelte-1d9zwmq{margin:0}:root{--clr-white: white;--lime: lime;--_sudo-private-property-example: red;--pastel-cream: #F0EBD5;--pastel-yellow: #FCF3A4;--pastel-orange: #FFD79F;--pastel-pink: #FFC9C9;--pastel-rose: #FFA3B6;--pastel-purple: #8f172e;--pastel-blue: #CCDFFD;--pastel-aqua: #B8DFE6;--pastel-mint: #D1E2CF;--pastel-lime: #D6F1BB;--link-color: var(--text);--link-bg: rgba(184, 223, 230, 1);--link-bg-hover: rgba(184, 223, 230, .6);--black: #222;--black50: #22222250;--black80: #222222a6;--grid-color: #FF060020;--background-color: #FFF;--text: #222;--textLight: rgba(34, 34, 34, .2);--table-bg: #ffffff;--table-row-bg: #f1f1f1;--code-background: #f5f5f5;--code-border-color: #e1e1e1;--grey-text: #ccc;--orange: #756144;--post-width: 40.125rem;--post-l-width: 64rem;--step--2: clamp(.7813rem, .7747rem + .0326vi, .8rem);--step--1: clamp(.9375rem, .9158rem + .1087vi, 1rem);--step-0: clamp(1.125rem, 1.0815rem + .2174vi, 1.25rem);--step-1: clamp(1.35rem, 1.2761rem + .3696vi, 1.5625rem);--step-2: clamp(1.62rem, 1.5041rem + .5793vi, 1.9531rem);--step-3: clamp(1.944rem, 1.771rem + .8651vi, 2.4414rem);--step-4: clamp(2.3328rem, 2.0827rem + 1.2504vi, 3.0518rem);--step-5: clamp(2.7994rem, 2.4462rem + 1.7658vi, 3.8147rem);--ff-family: Blanco,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;--ff-code: Consolas, Menlo, Monaco, "Andale Mono", "Ubuntu Mono", monospace}body{font-family:Inter Variable,sans-serif}.frankTitle{font-family:Frank Ruhl Libre,serif}.gridOff.svelte-1d9zwmq{background-image:none}.gridOff.svelte-1d9zwmq:after{display:none}.loader.svelte-1d9zwmq{position:fixed;top:0;left:0;right:0;height:4px;background:var(--pastel-orange);z-index:1}.loader.svelte-1d9zwmq:after{content:"";position:absolute;top:0;left:0;height:4px;width:100%;background:var(--pastel-purple);transform:translate3d(-100%,0,0);animation:10s svelte-1d9zwmq-moveSlide forwards}@keyframes svelte-1d9zwmq-moveSlide{0%{transform:translate3d(-100%,0,0)}30%{transform:translate3d(-90%,0,0)}60%{transform:translate3d(-50%,0,0)}80%{transform:translate3d(-40%,0,0)}to{transform:translateZ(0)}}
