@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}:root{--container-small: 400px;--container-medium: 500px;--container-default: 708px;--container-large: 1012px;--font-size-markdown: 17px;--line-height-markdown: 1.7;--font-size-h2: 28px;--line-height-h2: calc(var(--font-size-h2) * 1.2);--border-radius: 12px;--border-radius-large: 32px;--glass-blur: 12px}:root{--accent-color: #018BBC;--accent-color-hover: #0f9fd4;--accent-rgb: 1, 139, 188;--success-color: #3BA55D;--success-color-hover: #47b86b;--danger-color: #ED4245;--danger-color-hover: #f46c6e;--background-main: #fff;--text-heading: #000;--text-primary: #666;--background-secondary: #fff;--gradient-blur: 100px}html.dark{--text-heading: #fff;--text-primary: #ECEDEE;--text-muted: #888;--background-main: rgb(10, 10, 13);--background-secondary: rgba(28, 22, 47, .4);--background-tertiary: #1D1D1D;--background-tile: #14151B;--border-subtle: rgba(82, 82, 82, .2);--border-medium: rgba(82, 82, 82, .35);--border-strong: rgba(82, 82, 82, .5);--border-hairline: rgba(255, 255, 255, .1);--text-label: rgb(114, 120, 136);--text-label-faint: rgba(114, 120, 136, .6);--gradient-heading: linear-gradient(90deg, #4589FF 0%, #08BDBA 100%);--gradient-hover: linear-gradient(90deg, #1B1A26, #23171C);--shadow-banner: rgba(0, 0, 0, .15) 0px 4px 11px 0px, rgba(59, 59, 59, .29) 17px 21px 31px -11px}*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;width:100vw}@media only screen and (max-width:768px){html{overflow-x:hidden}}body{margin:0;font-family:var(--font-inter),Arial,sans-serif;background:var(--background-main);font-size:16px;line-height:1.333;font-weight:400;color:var(--text-primary);overflow-x:hidden;padding-bottom:24px}a{color:var(--accent-color);text-decoration:none;background-color:transparent;transition:.3s all ease}a:hover{text-decoration:none;color:var(--accent-color-hover)}button{border:none;cursor:pointer}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0;line-height:1.2;color:var(--text-heading)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}p{margin-top:0;margin-bottom:0rem}img{max-width:100%;height:auto}ul{list-style:disclosure-closed;padding-left:15px;margin:0}.container{max-width:var(--container-default);width:100%;padding-right:16px;padding-left:16px;margin:0 auto}.container.large{max-width:var(--container-large)}.container.medium{max-width:var(--container-medium)}.container.small{max-width:var(--container-small)}.flex{display:flex;flex-wrap:wrap}.column{flex-direction:column;flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.no-wrap{flex-wrap:nowrap}.flex-center{justify-content:center;align-items:center}.flex-align-center{align-items:center}.flex-justify-center{justify-content:center}.flex-space-evenly{justify-content:space-evenly}.flex-25{flex:0 0 25%;max-width:25%}.flex-33{flex:0 0 33.33333%;max-width:33.33333%}.flex-50{flex:0 0 50%;max-width:50%}.flex-66{flex:0 0 66.666666%;max-width:66.666666%}.flex-75{flex:0 0 75%;max-width:75%}@media only screen and (max-width:768px){.flex-25,.flex-33,.flex-50,.flex-66,.flex-75{flex:0 0 100%;max-width:100%}}.content-pad{padding:3rem}section.padded{padding:7em 0}section.half-padded{padding:3.5em 0}.about-banner{gap:12px;margin:0}.about-banner figcaption{font-size:14px;text-align:center}#contact .heading{justify-content:center;align-items:center}#contact .heading h2{font-size:50px;font-weight:700}#contact img.contact-avatar{width:50%;margin-bottom:1rem;clip-path:var(--hex-clip)}#contactform #honeypot,#contactform #company,#contactform [for=company],#contactform [for=honeypot]{display:none}#contactform{margin-bottom:40px;padding:2rem;gap:12px;background-color:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));border-radius:var(--border-radius);border:1px solid var(--border-subtle);flex:1}#contactform .left{gap:12px;position:relative}#contactform .right{flex:1;gap:12px}#contactform .right textarea{flex:1;resize:none}@media only screen and (max-width:768px){#contactform{padding:2rem}#contactform .left{flex:1;order:2}}#contactform label{display:none}.text-input{height:52px;background:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));color:#fff;border-radius:var(--border-radius);outline:none;font-size:16px;padding:.375rem .75rem;border:1px solid var(--border-subtle);transition:border-color .15s ease-in-out;font-family:inherit;max-width:100%}.text-input:focus{border-color:var(--accent-color)}textarea.text-input{height:inherit}#captcha-wrap{pointer-events:none;height:64px;width:100%;position:absolute;top:0;left:50%;transform:translate(-50%) scaleY(0);background:var(--accent-color);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-subtle);padding:.375rem .75rem;border-radius:var(--border-radius) var(--border-radius) 0 0;opacity:0;transition:top .2s ease,opacity .2s ease,transform .2s ease;display:flex;justify-content:center;transform-origin:0 100%}#captcha{pointer-events:none;width:100px;height:100%}.text-input:focus+#captcha-wrap{opacity:1;transform:translate(-50%) scaleY(1)}.text-input[name=filter]{transition:border-radius .2s ease}.text-input[name=filter]:focus{border-radius:0 0 12px 12px}#intro{gap:18px;margin-top:40px;margin-bottom:24px}.avatar-container{display:flex;gap:24px;align-items:center}.avatar-container>div{align-items:flex-start}#links-header .avatar-container div{align-items:center}.intro-avatar{width:96px;height:96px;border-radius:50%}.avatar-container h1{font-size:32px;letter-spacing:-1.5px;margin:0;line-height:1}.avatar-container p{color:var(--text-muted);font-weight:600;letter-spacing:-.18px;margin:0}#intro p{margin:0}#intro .blurb{font-size:20px;letter-spacing:-.34px;line-height:29px}#intro .profile{font-size:18px;font-weight:500;letter-spacing:-.25px;color:var(--text-label-faint)}#intro .profile span{background-image:var(--gradient-heading);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:600;display:inline-block}#marquee{overflow:hidden;margin:0 16px;position:relative;height:64px;border-radius:var(--border-radius)}#marquee:before,#marquee:after{content:"";display:block;position:absolute;top:0;left:0;bottom:0;width:10%;background-image:linear-gradient(to right,var(--background-main),transparent);z-index:10}#marquee:after{left:unset;right:0;background-image:linear-gradient(to left,var(--background-main),transparent)}#marquee>div{display:flex;gap:32px;flex-wrap:nowrap;position:absolute;width:100%;margin-left:0}#marquee .stat{color:var(--text-muted);text-transform:capitalize}::view-transition-old(intro-blurb),::view-transition-new(intro-blurb){height:100%;object-fit:none}#links-container .list,#links-icons{gap:8px}#links-header{gap:18px;margin-top:40px;margin-bottom:0}#links-header .blurb{font-size:18px;letter-spacing:0;line-height:1.4;text-align:center}#links-header .blurb span{color:var(--accent-color)}#links-icons{justify-content:space-around}#links-icons a{display:flex;width:min-content;padding:12px}#links-icons a img{min-width:24px;height:24px}#links-container{padding-left:0;padding-right:0;display:flex;flex-direction:column;gap:32px;padding-bottom:32px}#links-container .listbox,#links-container .list{gap:12px}#links-container .list .link{gap:12px;width:auto;justify-content:space-between;padding:12px}#links-container .list .link .label{gap:12px;align-items:center}#links-container .list .link .label img{width:20px}#links-container .list .link .label span{font-size:18px;font-weight:600;letter-spacing:-.25px;color:var(--text-primary)}#links-container .list .link .external{opacity:.6}.expand{display:none}button.expand{position:relative;border-radius:4px;background:0 0;color:#fff;transition:transform .5s;padding:0;line-height:0}button.expand img{height:18px;width:18px}.expanded button.expand{background-color:#000;transition:transform .5s,background-color .5s;transform:rotate(90deg)}#main-wrapper{padding:0}#main-nav{display:flex;justify-content:space-between;margin:24px 0;padding:16px;background-color:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));border-radius:var(--border-radius);border:1px solid var(--border-subtle);z-index:100}#main-nav ul{display:flex;padding-left:0;margin:0;list-style:none}#main-nav ul li{font-size:16px;color:#000;font-weight:500;height:22px;display:flex;justify-content:center;align-items:center}#main-nav ul li a{color:var(--text-primary);position:relative;height:22px;display:flex;justify-content:center;align-items:center}#main-nav ul li a:hover{text-decoration:none;color:var(--text-muted)}#main-nav ul li a.active:after{transform:scaleX(1)}#main-nav .nav{display:flex;justify-content:center;align-items:center;gap:24px}#main-nav .nav-socials{display:flex;justify-content:center;align-items:center;gap:16px}#main-nav .nav-socials a,#main-nav .nav-socials .social-icon{height:18px;width:18px}#main-nav .nav>a{height:18px;display:flex;justify-content:center;align-items:center}#main-nav img.brand{border-radius:37.5%;height:18px;width:18px;background-color:var(--accent-color)}@media only screen and (max-width:1000px){.expand{display:inline-block}#main-nav{white-space:nowrap;margin:24px;position:absolute;top:0;left:0;right:0}#main-wrapper{padding-top:76px}#main-nav .container{justify-content:space-between}#main-nav.collapse{align-items:flex-start;height:52px;transition:height .5s ease,background-color .25s ease;overflow:hidden}#main-nav.collapse ul{padding:16px}#main-nav.collapse ul{display:flex;gap:20px;position:absolute;top:50px;right:0;left:0;justify-content:space-between}#main-nav.expanded{height:106px;background-color:#1c162fe6}}::view-transition-group(main-nav){background-color:var(--background-secondary);border:1px solid var(--border-subtle);border-radius:var(--border-radius)}::view-transition-old(main-nav),::view-transition-new(main-nav){display:none}@media(prefers-reduced-motion:reduce){::view-transition-group(*){animation:none}}.tag,.tag.hover-fill{width:auto;border:1px solid var(--border-strong);display:inline-block;padding:4px 8px;margin:2px;background:none;color:#fff;text-decoration:none;border-radius:var(--border-radius);font-size:.85em;font-weight:500;transition:background-color .2s ease}.tag.hover-fill:after{transform:scale(.6)}.tag.hover-fill:hover{border-color:transparent}.tag .count{margin-left:4px;opacity:.7;font-size:.9em;font-weight:400}.tags-section{gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border-hairline)}@media only screen and (max-width:1000px){.tags-section{margin:32px 24px 0}}.tags-section .side-label{padding:0}.tags-section-list{margin:0 -2px}.blog-post-preview{padding:1.5rem 0;border-bottom:1px solid var(--border-hairline);gap:1rem}.blog-post-preview:last-child{border-bottom:none}.blog-post-preview h3{align-self:flex-start}.blog-post-preview h3 a{text-decoration:none}.blog-post-preview h3 a:hover{color:var(--accent-color-hover);text-decoration:underline dotted}.blog-tags{max-width:75%}.read-more{color:var(--accent-color);text-decoration:none;font-weight:500;width:auto!important}.read-more:hover{color:var(--accent-color-hover);text-decoration:underline dotted}.blog-post-preview,.blog-preview-info{display:flex;flex-direction:column;gap:.5rem}.blog-post-meta{display:flex;justify-content:space-between;align-items:center;font-size:.9em;color:var(--text-primary)}.byline{flex-wrap:nowrap;align-items:center;gap:12px;margin-top:4px}.byline>div{min-width:0}.byline img{width:40px;height:40px;border-radius:50%;object-fit:cover}.byline-name{font-size:15px;font-weight:600;color:var(--text-heading)}.byline-meta{gap:8px;font-size:14px}.blog-post-preview h3,.detail-header>.detail-title{view-transition-class:blog-post-title}::view-transition-old(*.blog-post-title),::view-transition-new(*.blog-post-title){height:100%;object-fit:none;object-position:left top}.post-banner{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--border-radius-large);box-shadow:var(--shadow-banner)}.post-footer{justify-content:space-between;align-items:center;gap:20px;padding-top:24px;border-top:1px solid var(--border-hairline)}.post-tags,.post-share{align-items:center;gap:4px}.share-label{margin-right:4px;font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--text-label)}.post-share a{display:flex;padding:8px}.post-share a:hover{opacity:.65}.text-muted{color:var(--text-muted)}#blog-posts{margin-top:32px;padding:0}@media only screen and (max-width:1000px){#blog-posts{padding:0 24px}}.detail-page{gap:56px;margin-top:56px}@media only screen and (max-width:1000px){.detail-page{margin-top:32px;padding:0 24px}}.detail-header{gap:20px}:not(.detail-page)>.page-header{margin-top:56px}@media only screen and (max-width:1000px){:not(.detail-page)>.page-header{margin-top:32px;padding:0 24px}}.page-meta{font-size:14px}.feed-link{color:inherit;text-decoration:underline dotted;text-underline-offset:3px}.feed-link:hover{color:var(--text-heading);text-decoration-style:solid}.feed-link svg{width:14px;height:14px;margin-right:6px;vertical-align:-2px}.crumb{gap:10px;font-size:13px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--text-label)}.crumb a{color:inherit}.crumb a:hover{color:var(--text-heading)}.detail-title{width:fit-content;max-width:840px;font-size:48px;line-height:1.1;letter-spacing:-1.25px;text-wrap:balance;background-image:var(--gradient-heading);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.detail-blurb{max-width:680px;font-size:20px;line-height:1.45;letter-spacing:-.34px}@media only screen and (max-width:640px){.detail-title{font-size:34px;letter-spacing:-.75px}}.detail-layout{display:flex;flex-direction:column;gap:40px}.detail-side{gap:16px}@media only screen and (min-width:1001px){.detail-layout{flex-direction:row;align-items:flex-start;gap:64px}.detail-layout>.detail-body{flex:1 1 680px;min-width:0;max-width:680px}.detail-layout>.detail-side{order:2;flex:1 1 200px;min-width:0;position:sticky;top:var(--side-top, 24px)}}.contents-box{gap:12px;padding:20px 12px 12px;background:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-subtle);border-radius:var(--border-radius)}.side-label{padding:0 12px;font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--text-label)}.contents-box ol{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.contents-box a{display:block;padding:8px 12px;border-radius:var(--border-radius);color:var(--text-muted);font-size:14px;line-height:1.35}.contents-box a:hover,.contents-box a[aria-current=true]{color:var(--text-heading)}.contents-box a:before{content:"#" / "";position:absolute;left:-4px;width:12px;text-align:center;font-weight:500;color:var(--accent-color);opacity:0;transition:opacity .2s ease;pointer-events:none}.contents-box a[aria-current=true]:before{opacity:1}#projects .project-row{justify-content:space-between}#projects .project{gap:8px}#projects .project img{min-width:200px;max-width:200px;height:200px;border-radius:var(--border-radius);background-color:var(--background-tile);backdrop-filter:blur(var(--glass-blur))}#projects .project .info{gap:4px}#projects .project .info h3{align-self:flex-start;font-size:16px;font-weight:600;letter-spacing:-.11px;color:var(--text-primary)}#projects .project .info p{font-size:15px;letter-spacing:-.09px;color:var(--text-primary);opacity:.6}#projects .project a{gap:12px;width:min-content;padding:12px}#projects .project a.hover-fill:after{transform:scale(.9)}@media only screen and (max-width:768px){#projects .project-row{flex-direction:column}#projects .project img{min-width:96px;max-width:96px;min-height:96px;max-height:96px}#projects .project a{flex:1;flex-direction:row;flex-wrap:nowrap;align-items:center;padding:12px;width:auto}}.project-head{align-items:center;justify-content:space-between;gap:24px}.project-identity{align-items:center;gap:24px;min-width:0}.project-heading{gap:8px;min-width:0}.project-icon{width:88px;height:88px;border-radius:var(--border-radius);background-color:var(--background-tile)}.project-actions{gap:12px}.project-actions .btn{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px}.project-banner{display:flex;aspect-ratio:16 / 9;border-radius:var(--border-radius-large);background-color:var(--background-tile);box-shadow:var(--shadow-banner);overflow:hidden}.project-banner img{width:100%;height:100%;object-fit:scale-down}.repo-card{gap:16px;padding:20px 12px 16px;background:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-subtle);border-radius:var(--border-radius)}.repo-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}@media only screen and (max-width:600px),(min-width:1001px){.repo-stats{grid-template-columns:repeat(2,1fr)}}.repo-stat{gap:2px;padding:8px 12px;border-radius:var(--border-radius);color:var(--text-heading)}.repo-stat:hover{color:var(--text-heading)}@media only screen and (max-width:600px),(min-width:1001px){.repo-stat.wide{grid-column:1 / -1}}.repo-stat-label{align-items:center;gap:6px;font-size:12px;line-height:1.4;color:var(--text-muted)}.repo-stat-label svg{width:14px;height:14px;flex:none}.repo-stat-value{font-size:15px;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums}.repo-divider{height:1px;margin:0 12px;background:var(--border-hairline)}.repo-languages{gap:2px;margin:0;padding:0;list-style:none}.repo-language{gap:5px;padding:6px 12px 8px;border-radius:var(--border-radius);color:var(--text-primary)}.repo-language:hover{color:var(--text-heading)}.repo-language-row{justify-content:space-between;gap:8px;font-size:14px;line-height:1.3}.repo-language-row .text-muted{font-variant-numeric:tabular-nums}.repo-language-bar{display:block;height:4px;border-radius:2px;background:var(--border-hairline);overflow:hidden}.repo-language-bar span{display:block;height:100%;border-radius:2px;background:var(--gradient-heading)}.repo-topics{margin:0;padding:0 10px;list-style:none}.gradient-banner{position:fixed;width:100vw;height:100vh;z-index:-1;color:#fff;background-image:linear-gradient(90deg,#00fff1,#0003ff,#f400e8,#f40000,#e0f400);background-position:center top;background-repeat:no-repeat;background-size:40% 25%;filter:blur(var(--gradient-blur)) hue-rotate(0deg);opacity:.35;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translate3d(0,-15%,0);-moz-transform:translate3d(0,-15%,0);-ms-transform:translate3d(0,-15%,0);-o-transform:translate3d(0,-15%,0);transform:translate3d(0,-15%,0);will-change:filter}@media only screen and (max-width:1000px){.gradient-banner{background-size:100% 25%;animation:none}.gradient-banner.bottom{display:none}}.gradient-banner.bottom{background-position:center top;transform:translate3d(0,100%,0);animation-delay:1s}@keyframes huey-blurry{0%{filter:blur(var(--gradient-blur)) hue-rotate(0deg)}25%{filter:blur(var(--gradient-blur)) hue-rotate(180deg)}50%{filter:blur(var(--gradient-blur)) hue-rotate(360deg)}75%{filter:blur(var(--gradient-blur)) hue-rotate(180deg)}to{filter:blur(var(--gradient-blur)) hue-rotate(0deg)}}@keyframes huey{0%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(180deg)}to{filter:hue-rotate(360deg)}}.btn{display:inline-block;text-align:center;vertical-align:middle;line-height:1.5;cursor:pointer;font-size:12px;text-transform:uppercase;letter-spacing:2px;font-weight:600;padding:1rem;color:#fff;transition:color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out;border-radius:var(--border-radius)}.btn.btn-primary{background:var(--accent-color)}.btn.btn-primary:hover{background:var(--accent-color-hover)}.btn.btn-success{background:var(--success-color)}.btn.btn-success:hover{background:var(--success-color-hover)}.btn.btn-danger{background:var(--danger-color)}.btn.btn-danger:hover{background:var(--danger-color-hover)}.btn.btn-outline{border:1px solid var(--border-strong);color:var(--text-heading)}.btn.btn-outline:hover{border-color:transparent}.heading{justify-content:center;color:var(--text-label-faint)}.heading h2{color:var(--text-label-faint);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:3px}a.hover-fill{border-radius:var(--border-radius);position:relative}a.hover-fill.outline{border:1px solid var(--border-subtle)}a.hover-fill.outline:hover{border-color:transparent}a.hover-fill:after{content:"";display:block;position:absolute;inset:0;background-image:var(--gradient-hover);backdrop-filter:blur(var(--glass-blur));transform:scale(.6);transform-origin:50% 50% 0px;transition:transform .2s ease-out,opacity .2s ease-out;border-radius:var(--border-radius);opacity:0;z-index:-1}a.hover-fill.active:after,a.hover-fill:hover:after{transform:scale(1)!important;opacity:1}.markdown{color:var(--text-primary);font-size:var(--font-size-markdown);line-height:var(--line-height-markdown);letter-spacing:-.09px;overflow-wrap:break-word}.markdown .content{display:flow-root}.markdown .content>:first-child{margin-top:0}.markdown .content>:last-child{margin-bottom:0}.markdown p{margin:0 0 1.15em}.markdown :is(h1,h2,h3,h4,h5,h6){position:relative;color:var(--text-heading);text-wrap:balance}.markdown :is(h1,h2){display:flex;align-items:flex-start;gap:16px;margin:72px 0 20px;font-size:var(--font-size-h2);line-height:1.2;font-weight:700;letter-spacing:-.5px}.markdown :is(h1,h2):before{content:"#" / "";position:absolute;right:100%;top:calc(var(--line-height-h2) / 2);margin-right:20px;transform:translateY(calc(-50% + 1px));font-size:24px;line-height:1;font-weight:500;color:var(--accent-color);transition:color .2s ease}.markdown :is(h1,h2):after{content:"";flex:1 1 48px;min-width:48px;height:1px;margin-top:calc(var(--line-height-h2) / 2);background:rgba(var(--accent-rgb),.5)}.markdown :is(h1,h2):hover:before{color:var(--accent-color-hover)}.markdown h3{margin:44px 0 12px;font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.3px}.markdown :is(h4,h5,h6){margin:32px 0 10px;font-size:13px;line-height:1.3;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--text-label)}.markdown :is(h1,h2,h3,h4,h5,h6) strong{font-weight:inherit;color:inherit}.markdown .heading-text{min-width:0}.markdown .anchor{position:absolute;right:100%;top:0;height:var(--line-height-h2);width:44px;margin-right:8px;color:transparent;text-decoration:none}.markdown .anchor:hover{color:transparent;text-decoration:none}.markdown .anchor:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px;border-radius:6px}.markdown h3 .anchor{width:auto;height:auto;margin-right:12px;color:var(--text-muted);font-weight:500;opacity:0;transition:opacity .3s ease,color .3s ease}.markdown h3:hover .anchor,.markdown h3 .anchor:focus-visible{opacity:1}.markdown h3 .anchor:hover{color:var(--accent-color)}.markdown a{color:var(--accent-color);text-decoration:underline dotted;text-underline-offset:3px}.markdown a:hover{color:var(--accent-color-hover);text-decoration-style:solid}.markdown strong{font-weight:600;color:var(--text-heading)}.markdown :not(pre)>code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em;background:#1b1d26e6;border:1px solid var(--border-medium);border-radius:6px;padding:.1rem .35rem}.markdown :is(ul,ol){margin:0 0 1.15em;padding-left:22px}.markdown ul{list-style:disclosure-closed}.markdown li+li{margin-top:6px}.markdown li::marker{color:var(--accent-color)}.markdown blockquote{margin:40px 0;padding:0;font-size:22px;line-height:1.45;letter-spacing:-.34px;font-weight:500;color:var(--text-heading)}.markdown blockquote:before{content:"“" / "";display:block;width:fit-content;height:34px;font-size:64px;line-height:1;font-weight:700;background-image:var(--gradient-heading);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.markdown blockquote p{margin:0}.markdown hr{border:0;height:2px;width:60%;margin:56px auto;background:radial-gradient(circle at center,var(--text-label-faint),transparent)}.markdown hr:has(+:is(h1,h2)){display:none}.markdown pre{margin:0 0 1.4em;overflow-x:auto;border-radius:var(--border-radius);border:1px solid var(--border-medium);padding:1rem 1.25rem;box-shadow:#0000002e 0 8px 20px -12px}.markdown pre.astro-code{background-color:#1b1d26!important}.markdown pre code{display:block;min-width:max-content;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;line-height:1.6}.markdown .table-wrap{overflow-x:auto;margin:0 0 1.4em}.markdown .table-wrap table{margin:0}.markdown table{width:100%;overflow:hidden;margin:0 0 1.4em;border-collapse:separate;border-spacing:0;border:1px solid var(--border-subtle);border-radius:var(--border-radius);background:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));font-size:15px}.markdown th:not([align]){text-align:left}.markdown th{padding:12px 16px;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-label);border-bottom:1px solid var(--border-hairline)}.markdown td{padding:12px 16px;border-bottom:1px solid var(--border-hairline);vertical-align:top}.markdown tr:last-child td{border-bottom:0}.markdown img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:var(--border-radius);border:1px solid var(--border-subtle)}@media only screen and (max-width:1000px){.markdown :is(h1,h2):before{position:relative;right:auto;top:auto;flex:none;margin:5px 0 0;transform:none}.markdown :is(h1,h2) .anchor{right:auto;left:0;width:24px;margin:0}.markdown h3 .anchor{display:none}}@media only screen and (max-width:600px){.markdown{--line-height-h2: calc(24px * 1.2)}.markdown :is(h1,h2){margin-top:56px;gap:12px;font-size:24px}.markdown :is(h1,h2):before{font-size:20px;margin-top:4px}}.markdown .signoff{margin-top:40px;padding:32px;text-align:center;background:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border-subtle);border-radius:var(--border-radius)}.markdown hr:has(+.signoff){display:none}.paginator{justify-content:space-between;align-items:center;padding:0 16px;margin:10px 0}.page-numbers{list-style:none;display:inline-flex;font-size:1.2em;justify-content:center;gap:12px}.page-numbers li{margin:0 5px}.paginator a.disabled{pointer-events:none;opacity:0}.paginator .ellipsis{display:inline-flex;justify-content:center;align-items:center}.paginator a.hover-fill{display:inline-flex;gap:12px;padding:12px;justify-content:center;align-items:center;width:auto;font-weight:600;letter-spacing:-.25px;color:var(--text-primary)}.showcase,#projects,#latest-posts{gap:10px}.showcase .heading,#projects .heading,#latest-posts .heading{justify-content:space-between;color:var(--text-label-faint)}.showcase .heading h2,#projects .heading h2,#latest-posts .heading h2{color:var(--text-label-faint);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:3px}.showcase .heading a,#projects .heading a,#latest-posts .heading a{font-size:12px;background-image:linear-gradient(90deg,#018bbc,#004964);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:600;display:inline-block}.showcase .heading a:hover,#projects .heading a:hover,#latest-posts .heading a:hover{animation:huey 3s infinite;animation-timing-function:ease}.showcase .blog-post-preview{margin-bottom:16px;padding-left:16px;padding-right:16px}.showcase .no-posts{padding:24px;text-align:center;background-color:var(--background-secondary);backdrop-filter:blur(var(--glass-blur));border-radius:var(--border-radius);border:1px solid var(--border-subtle)}.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}
