﻿html{--color-mode: 'lit';--light: #fff;--dark: #000;--bg: #1e1e1e;--haze: #f2f2f2;--gray: #020202;--accent: var(--gray);--text: #575757;--header-text: var(--dark);--font: 'Open Sans', sans-serif;--theme: #0077b8;--ease: cubic-bezier(.19,1,.22,1);--code-bg: var(--bg);--table-bg: var(--light);--table-haze: var(--haze);--table-border: #dedede;--footer-bg: var(--haze);--shadow: rgba(0,0,0,0.12);--translucent: rgba(0,0,0,0.05);--translucent-light: rgba(255,255,255,0.05);--post-bg: var(--light);--choice-bg: var(--haze);--ease: cubic-bezier(0.39, 0.575, 0.565, 1);--easing: cubic-bezier(.19,1,.22,1);--notice-code-bg: var(--bg);--notice-info-border-color: #6AB0DE;--notice-info-background: #E7F2FA;--notice-note-border-color: #F0B37E;--notice-note-background: #FFF2DB;--notice-tip-border-color: rgba(92, 184, 92, 0.8);--notice-tip-background: #E6F9E6;--notice-warning-border-color: rgba(217, 83, 79, 0.8);--notice-warning-background: #FAE2E2}html.page{--choice-bg: var(--light)}html[data-mode="dim"]{--light: hsla(0,0%,100%,0.87);--color-mode: 'dim';--text: var(--light);--accent: var(--bubble);--choice-bg: var(--bg);--code-bg: var(--translucent-light);--header-text: var(--light);--table-bg: var(--code-bg);--table-haze: rgba(255,255,255,0.1);--table-border: var(--code-bg);--footer-bg: #272727;--post-bg: var(--translucent-light)}html[data-mode="dim"] blockquote{background:var(--translucent-light);color:#dedede}html[data-mode="dim"] svg.icon{fill:var(--light)}html[data-mode="dim"] .icon img{background:none}html[data-mode="dim"] .icon svg{fill:#fafafa}html[data-mode="dim"] .sidebar_inner::before{display:none}@media (prefers-color-scheme: dark){html:not([data-mode="lit"]){--light: hsla(0,0%,100%,0.87);--color-mode: 'dim';--text: var(--light);--accent: var(--bubble);--choice-bg: var(--bg);--code-bg: var(--translucent-light);--header-text: var(--light);--table-bg: var(--code-bg);--table-haze: rgba(255,255,255,0.1);--table-border: var(--code-bg);--footer-bg: #272727;--post-bg: var(--translucent-light)}html:not([data-mode="lit"]) blockquote{background:var(--translucent-light);color:#dedede}html:not([data-mode="lit"]) svg.icon{fill:var(--light)}html:not([data-mode="lit"]) .icon img{background:none}html:not([data-mode="lit"]) .icon svg{fill:#fafafa}html:not([data-mode="lit"]) .sidebar_inner::before{display:none}}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-stretch:100%;src:url(https://fonts.gstatic.com/s/opensans/v34/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVI.woff2) format("woff2");unicode-range:'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD'}@font-face{font-family:'Major Mono Display';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/majormonodisplay/v12/RWmVoLyb5fEqtsfBX9PDZIGr2tFubRh7DXeR.woff2) format("woff2");unicode-range:'U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD';font-display:swap}*{box-sizing:border-box;-webkit-appearance:none;margin:0;padding:0}body,html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-kerning:normal;-webkit-font-feature-settings:"kern" 1;text-rendering:optimizeLegibility;text-rendering:geometricPrecision;-webkit-text-size-adjust:100%;font-size:100%;scroll-padding-top:4.5rem}body::-webkit-scrollbar-corner,html::-webkit-scrollbar-corner{background-color:transparent}body{font-family:var(--font);background:#1e1e1e;color:var(--text);font-size:1.1rem;line-height:1.5;margin:0 auto;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none;color:inherit}a:focus,a:focus-within{outline:none !important}a:hover{text-decoration:underline;text-decoration-thickness:1px}h1,h2,h3,h4,h5{font-weight:300;padding:5px 0;margin:15px 0;color:var(--header-text);line-height:1.35}h1:hover .link,h2:hover .link,h3:hover .link,h4:hover .link,h5:hover .link{opacity:1}h1{font-size:200%;font-weight:400}h2{font-size:150%}h3{font-size:150%}h4{font-size:125%}h5{font-size:120%}h6{font-size:100%}img,svg{max-width:100%;vertical-align:middle}img{height:auto;margin:1rem auto;padding:0}img:focus,img:focus-within{outline:none !important;border:none !important}main{flex:1}ul{list-style:none;-webkit-padding-start:0;-moz-padding-start:0}em{font-weight:500}b,strong{font-weight:700}hr{border:none;padding:1px;background:#424242;opacity:0.5;margin:1rem 0}aside h3{position:relative;margin:0 !important}aside ul{list-style:initial;padding-left:1rem}aside li{padding:0.25rem 0}table{width:100%;border-collapse:collapse;background:var(--table-haze);margin-bottom:1.5rem}table:not(.ln-table) t{background:var(--table-bg)}td,th{padding:0.5rem 1rem;border:1px solid var(--table-border)}td,th{padding:0.5rem 1rem;font-weight:400}td:not(:first-child),th:not(:first-child){padding-left:1.5rem}th{font-weight:700}tbody{padding:0}tbody tr:nth-child(even){background-color:var(--table-haze)}tbody tr:nth-child(odd){background-color:var(--table-bg)}blockquote{margin:25px auto;quotes:"“" "”" "‘" "’";padding:1.5rem;color:#555555;padding:1rem 1.5rem;border-left:0.2rem solid #30c992;position:relative;background:var(--haze)}blockquote+.highlight_wrap{margin-top:2.25rem}p{padding:0.8rem 0}picture{display:block;width:100%}.nav_open+.nav_sub::before,.nav_open+.nav_sub .nav_child:first-child::before{width:0;height:0;border-left:0.33rem solid transparent;border-right:0.33rem solid transparent;top:-0.5rem;left:1rem}.nav{color:#fafafa;font-family:'Major Mono Display';display:flex;justify-content:space-between;--maxWidth: 1440px;max-width:var(--maxWidth);margin-left:auto;margin-right:auto}.nav_active{color:#30c992}.nav_icon{width:0.7rem;margin-left:0.33rem;transition:transform 0.3s var(--ease);transform-origin:50% 50%}.nav_body{display:flex;flex:1}.nav_header{background-color:#272727;border-bottom:1px solid #424242;padding:0 1.5rem;position:fixed;width:100%;z-index:99;left:0}.nav_item{padding:1rem 1rem;display:inline-flex;align-items:center;font-size:20px;border-bottom:1px solid transparent;position:relative;transition:color 0.3s}.nav_item:hover,.nav_item:focus{text-decoration:none}.nav_item:hover{border-bottom:1px solid #30c992}.nav_sub{width:100%;left:0;position:absolute;z-index:20;top:3rem;transition:height 0.3s ease-in-out;height:0;overflow:hidden;padding:0.96rem 0 0;background:transparent}.nav_parent{position:relative;display:flex;align-items:center;margin:-1px 0}.nav_parent:hover .navitem:hover{cursor:pointer}.nav_open+.nav_sub .nav_child{padding-top:0.5rem;padding-bottom:0.5rem;z-index:3}@media screen and (min-width: 769px){.nav_open+.nav_sub .nav_child+a{padding-top:0}}.nav_open+.nav_sub .nav_child:not(:first-child){position:relative}.nav_open+.nav_sub .nav_child:first-child::before{position:absolute;content:"";border-bottom:0.5rem solid var(--translucent-light);z-index:2}.nav_open+.nav_sub{height:initial;z-index:999;overflow:initial;padding-bottom:0.5rem}@media screen and (min-width: 769px){.nav_open+.nav_sub{color:var(--text)}}.nav_open+.nav_sub::before,.nav_open+.nav_sub::after{content:"";position:absolute}.nav_open+.nav_sub::before{z-index:1}@media screen and (min-width: 769px){.nav_open+.nav_sub::before{border-bottom:0.5rem solid var(--choice-bg)}}.nav_open+.nav_sub::after{top:0;left:0;right:0;bottom:0;background:var(--translucent-light);box-shadow:0 1rem 3rem rgba(0,0,0,0.25)}@media screen and (min-width: 769px){.nav_open+.nav_sub{background:var(--choice-bg);width:auto;white-space:nowrap}}.nav_open .nav_icon{transform:rotate(180deg)}.nav_sub .nav_item{z-index:5;display:block;padding-top:0.75rem;padding-bottom:0.75rem;transition:background 0.3s ease-out;margin:0}.nav_sub .nav_item:not(.nav_child){position:relative}.nav_brand{font-family:'Major Mono Display';font-size:30px;margin:8px 40px 8px 0}.nav_brand img{max-width:15rem;margin:0}@media screen and (min-width: 769px){.nav_brand{padding-left:0}.nav_brand img{background:transparent !important}}.nav_brand:hover,.nav_brand:focus{text-decoration:none}.nav_center{display:none}@media screen and (min-width: 769px){.nav_center{display:flex;flex:1;align-items:center;justify-content:center}.nav_center+.follow{flex:initial}}@media screen and (min-width: 769px){.nav_hide{display:none}}.nav_close{display:none;background:transparent;border:none;-webkit-appearance:none;cursor:pointer;padding:0.25rem;flex-shrink:0}.nav_close span{display:flex;align-items:center;justify-content:center}.content,.footer{padding:1.5rem}@media screen and (min-width: 1441px){.content,.footer{padding:1.5rem 0}}.content{padding-top:5rem;--maxWidth: 1440px;max-width:var(--maxWidth);margin-left:auto;margin-right:auto}.footer{width:100%;z-index:99;left:0;border-top:1px solid #424242;background:var(--footer-bg);margin-top:2rem;font-size:0.9rem;padding:15px 0}.footer_inner{--maxWidth: 1440px;max-width:var(--maxWidth);margin-left:auto;margin-right:auto;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;padding:13px 1.5rem;gap:0.5rem;font-family:'Major Mono Display';font-size:24px}@media screen and (min-width: 769px){.footer_inner{flex-direction:row;text-align:left}}.footer_social{display:flex;flex-direction:row;align-items:center;gap:1rem}@media screen and (min-width: 769px){.footer_social{margin-left:4rem}}.button,.resume_action{color:#30c992;display:inline-flex;padding:0.5rem 1.5rem;text-transform:uppercase;border:1px solid #30c992;border-radius:2px;background-color:rgba(48,201,146,0.08);font-size:0.9rem;align-items:center;user-select:none;position:relative;isolation:isolate;overflow:hidden;color:transparent;text-shadow:0 0 0 #30c992,0 2em 0 #1e1e1e;transition:text-shadow .4s var(--easing)}.button_back{color:#fff;outline:none;border:none;appearance:none;background-color:#30c992;font-size:1rem;cursor:pointer;padding:0.5rem 1rem;margin-bottom:1.33rem;border-radius:1.5rem}.button::after,.resume_action::after{content:'';position:absolute;inset:0;z-index:-1;background:#30c992;transform:translateY(101%);transition:transform .4s var(--easing);pointer-events:none}.button:hover::after,.resume_action:hover::after,.button:focus-visible::after,.resume_action:focus-visible::after{transform:none}@media (prefers-reduced-motion: reduce){.button,.resume_action,.button::after,.resume_action::after,.button *,.resume_action *{transition:none !important}}.button:hover,.resume_action:hover,.button:focus-visible,.resume_action:focus-visible{color:transparent;text-decoration:none;text-shadow:0 -2em 0 #30c992,0 0 0 #1e1e1e}@media print,(forced-colors: active){.button,.resume_action,.button:hover,.button:focus-visible{color:#30c992;text-shadow:none}.button::after,.resume_action::after,.button:hover::after,.button:focus-visible::after{display:none}}.button_tally{padding:0 0.3rem;border-radius:2px;background-color:#1e1e1e;display:inline-flex;justify-content:center;align-items:center;color:#30c992;margin:0.1rem 0 0.1rem 0.5rem;font-size:0.8rem}.post_link,.post_title{margin:0}.post_link{margin:0;padding:0;line-height:1}.post_link>a{display:block;margin:1px 0 15px 25px;line-height:1.35;text-decoration:none}.post_link>a:hover{color:rgba(255,255,255,0.6)}.posts{margin-top:2rem}.post_header{height:50vh;max-height:35rem;background-color:#272727;background-size:cover;background-position:center;margin-top:4.2rem}@media screen and (max-width: 992px){.post_header{height:40vh;margin-top:3rem}}@media screen and (max-width: 667px){.post_header{height:30vh}}.post_header+.content{padding-top:0}.post_item{margin-bottom:2rem;border:1px solid #3a3a3a;background:#232323}.post_tag{padding:0.2rem 0.8rem;font-size:0.8rem}.post_tags{display:none}.post_tags.jswidgetopen{display:initial;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;width:100vw;padding:5rem 1.5rem;background:var(--translucent-light);cursor:pointer;z-index:999;overflow-y:auto}.post_tags_toggle{margin-top:0.5rem;margin-left:0.5rem;cursor:pointer}.post_tag,.post_share{margin:0.5rem 1rem 0.5rem 0}.post_share{display:inline-flex}.post_meta{align-items:stretch;margin-bottom:10px}.post_meta,.post_meta span{display:inline-flex;flex-flow:row wrap}.post_meta span{align-items:center}@media screen and (min-width: 557px){.post_meta span{gap:0.5rem 0}}@media screen and (max-width: 667px){.post_meta span:last-of-type{margin-top:-0.5rem}}@media screen and (min-width: 667px){.post_meta .button,.post_meta .resume_action{margin:0 0.5rem}}.post_date{margin:10px 0 10px 5px}.post_featured{display:block;margin:1rem auto}.post_content a:not(.button):not(.resume_action){color:#30c992}.post_content ul,.post_content ol{list-style:initial;padding:0.5rem 1.25rem}.post_content ul li,.post_content ol li{padding-top:0.25rem}.post_content ol{list-style:decimal}.scrollable{display:grid;width:100%;max-width:100%;overflow-x:auto}.to-top{position:fixed;bottom:2rem;right:1.5rem;height:2.25rem;width:2.25rem;background-color:#30c992;display:flex;align-items:center;justify-content:center;border:none;-webkit-appearance:none;border-radius:2px;color:#fff !important;text-decoration:none !important;font-size:1.25rem;cursor:pointer}@media screen and (max-width: 667px){.to-top{bottom:2.25rem}}.to-top,.to-top:focus{outline:none}.mb-0{margin-bottom:0 !important}.tags_list{cursor:initial;background:var(--choice-bg);padding:4.5rem 1.5rem 1.5rem 1.5rem;border-radius:1rem;max-width:720px;margin:0 auto;box-shadow:0 0.5rem 1.5rem rgba(0,0,0,0.12);position:relative;display:flex;flex-flow:row wrap}.tags_nav{position:relative}.tags_hide{position:absolute;top:1rem;right:1.5rem;padding:0.5rem;border-radius:50%;cursor:pointer}@media screen and (min-width: 992px){.tags_hide{display:none}}.tags_sort{font-size:1rem;color:var(--light);background:var(--theme);position:absolute;top:1.5rem;left:1.5rem;border-radius:1.5rem;padding:0.1rem}.tags_sort,.tags_sort span{user-select:none}.tags_sort span{display:inline-flex;justify-content:center;align-items:center;height:2rem;position:relative;z-index:5;cursor:pointer;width:5rem;font-weight:500}.tags_sort::before{content:"";position:absolute;width:4.5rem;top:0.25rem;bottom:0.25rem;left:0.25rem;z-index:3;background:var(--bg);opacity:0.5;border-radius:1.5rem;transition:0.25s transform var(--ease)}.tags_sort.sorted::before{transform:translateX(5rem)}.tag-title{border-bottom:none !important;display:inline-block !important;position:relative;font-size:2rem;margin-bottom:-1rem}.tag-title::after{content:attr(data-count);margin-left:1.5rem;background-color:#eee;padding:0.25rem 1rem;border-radius:15%;font-size:1.5rem}.icon{display:inline-flex;justify-content:center;align-items:center;margin:0 0.5rem}.icon,.icon img,.icon svg{width:1.1rem;height:1.1rem}.icon_2{width:2.2rem;height:2.2rem}.link{opacity:0;position:relative}.link_owner .icon{background-image:url("../icons/link.svg");background-size:100%;background-repeat:no-repeat;background-position:center right}.link_yank{opacity:1}.link_yanked{position:absolute;right:-1rem;top:-2rem;background-color:#30c992;color:#fff;width:7rem;padding:0.25rem 0.5rem;font-size:0.9rem;border-radius:1rem;text-align:center}.link_yanked::after{position:absolute;top:1rem;content:"";border-color:#30c992 transparent;border-style:solid;border-width:1rem 1rem 0 1rem;height:0;width:0;transform-origin:50% 50%;transform:rotate(145deg);right:0.45rem}.blink{animation:blinker 0.8s ease infinite;animation-fill-mode:none;color:#30c992}@keyframes blinker{0%{opacity:0}}.excerpt{width:100%;display:block;border:0;background:#232323}.excerpt_left{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.excerpt_header{margin:0;background:transparent;padding:1.15rem;display:flex;align-items:stretch;gap:1rem}.excerpt_meta{display:grid;gap:0.65rem;margin-top:0.2rem}.excerpt_thumbnail{display:block;width:120px;aspect-ratio:1 / 1;overflow:hidden;border:1px solid #383838;background:#1a1a1a}.excerpt_thumbnail figure,.excerpt_thumbnail picture{display:block;width:100%;height:100%;margin:0}.excerpt_thumbnail img{display:block;width:100%;height:100%;object-fit:cover}.excerpt_thumb{display:none;margin-left:auto;width:120px;flex:0 0 120px;align-self:flex-start}@media screen and (min-width: 769px){.excerpt_thumb{display:block}}.excerpt .post_link{display:flex;align-items:flex-start;gap:0.6rem;line-height:1.3}.excerpt .post_link>a{margin:0}.excerpt .post-title-prefix{position:static;margin-top:0.1rem;line-height:1;flex:0 0 auto}.excerpt .post_meta{margin:0;display:flex;align-items:center;gap:0.6rem;color:#9a9a9a}.excerpt .excerpt_meta .post_meta,.excerpt .excerpt_meta .post_meta_extra{margin-left:32px}.excerpt .post_date{margin:0}.excerpt .post_time{margin:0;color:#7f7f7f}.excerpt .post_meta_extra,.excerpt .post_meta_tags{display:flex;flex-wrap:wrap;gap:0.6rem}.excerpt .post_tag{margin:0}.sidebar_inner{position:relative}.sidebar_inner::before{content:"";padding:0.5px;top:0;bottom:0;background:linear-gradient(to bottom, var(--haze), var(--light), var(--haze));position:absolute;left:-2rem}#author-section,#categories-section,#tags-section{font-family:'Major Mono Display'}.author_bio a{color:#30c992}.pagination{display:flex}.page-item{padding:0.2rem}.page-item.disabled a{background-color:rgba(48,201,146,0.08)}.page-item.disabled a:hover{color:#30c992;background-color:rgba(48,201,146,0.08)}.page-item:first-child,.page-item:last-child{display:none}.page-item.active a{color:#1e1e1e;background-color:#30c992}.page-link{padding:0.25rem 0.60rem;border-radius:2px;background-color:rgba(48,201,146,0.08);color:#30c992;border:1px solid #30c992}.page-link:hover{color:#1e1e1e;background-color:#30c992}.page_only{display:none !important}.page .page_only{display:initial !important}.float_left{float:left;margin-right:1rem}.float_left+p{padding-top:0}.float_right{float:right;margin-left:1rem}.float_left::after,.float_right::after{clear:both}.follow{display:flex;align-items:center;flex:1;justify-content:flex-end}.follow svg{fill:#fafafa;margin-left:0.75rem}figcaption{font-style:italic;opacity:0.67;font-size:0.9rem}.to_top{background-color:rgba(48,201,146,0.08);color:#30c992;width:2.6rem;height:2.6rem;display:flex;justify-content:center;align-items:center;cursor:pointer;border:1px solid #30c992;border-radius:2px;position:fixed;bottom:1.5rem;right:1.5rem;z-index:99;overflow:hidden;isolation:isolate}.to_top.ios{position:absolute;bottom:0.75rem;right:0}.to_top::after{content:'';position:absolute;inset:0;z-index:-1;background:#30c992;transform:translateY(101%);transition:transform .4s var(--easing);pointer-events:none}.to_top:hover::after,.to_top:focus-visible::after{transform:none}@media (prefers-reduced-motion: reduce){.to_top,.to_top::after,.to_top *{transition:none !important}}.to_top svg{fill:#30c992;width:14px;filter:drop-shadow(0 2.6rem 0 #1e1e1e);transition:transform .4s var(--easing)}.to_top:hover,.to_top:focus-visible{text-decoration:none}.to_top:hover svg,.to_top:focus-visible svg{transform:translateY(-2.6rem)}.color_mode{height:1.5rem;display:grid;align-items:center;margin:0 0.5rem}@media screen and (min-width: 769px){.color_mode{margin:0 1.5rem;grid-template-columns:1fr}}.color_choice{width:3rem;background-color:var(--translucent-light);border-radius:1rem;height:1.5rem;outline:none;border:none;-webkit-appearance:none;cursor:pointer;position:relative;position:relative;overflow:hidden;box-shadow:0 0.25rem 1rem rgba(0,0,0,0.15)}.color_choice::after{content:"";position:absolute;top:0.1rem;left:0.1rem;width:1.3rem;height:1.3rem;background-position:center;background-size:cover;border-radius:50%;z-index:2}.color_animate{transition:transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1)}.color_animate::after{transition:transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);will-change:transform}.taxonomy{text-transform:capitalize}.image-scale{position:fixed;z-index:999999;left:0;right:0;height:100vh;top:0;padding:1.5rem;background-color:var(--bg);display:grid;align-items:center;overflow:auto}.image-scale .image-scalable{background-color:var(--text)}.image-scalable{cursor:pointer;transition:transform 0.3s var(--ease)}.image_featured{display:block;margin-left:auto !important;margin-right:auto !important}.image_thumbnail{margin:0}.video{overflow:hidden;padding-bottom:56.25%;position:relative;height:0;margin:1.5rem 0;border-radius:0.6rem;background-color:var(--bg);box-shadow:0 1rem 2rem rgba(0,0,0,0.17)}.video iframe{left:0;top:0;height:100%;width:100%;border:none;position:absolute;transform:scale(1.02)}.notices{border-top-width:2rem;border-top-style:solid;color:#666;margin:2rem 0;padding-bottom:.1px;padding-left:1rem;padding-right:1rem}.notices .label{color:#fff;margin-top:-1.75rem;font-weight:bold}.notices .label:first-child::before{font-weight:900;margin-left:-.35rem;margin-right:.35rem}.notices.info{border-color:var(--notice-info-border-color);background:var(--notice-info-background)}.notices.warning{border-color:var(--notice-warning-border-color);background:var(--notice-warning-background)}.notices.image-warning{margin:0}.notices.note{border-color:var(--notice-note-border-color);background:var(--notice-note-background)}.notices.tip{border-color:var(--notice-tip-border-color);background:var(--notice-tip-background)}.notices .highlight_wrap{background:var(--notice-code-bg) !important}.search{flex:1;display:flex;justify-content:flex-end;position:relative;max-width:25rem;margin:0.5rem 0 0;--border: transparent}.search_field{padding:0.5rem 1rem;width:100%;outline:none;color:var(--text);background:var(--post-bg);border:1px solid var(--border);border-radius:8px;font-size:1rem;box-shadow:0 0.25rem 1rem rgba(0,0,0,0.1)}.search_field:focus+.search_label{opacity:0}.search_label{position:absolute;z-index:9;opacity:0.67;right:0.67rem;top:0.25rem;width:1rem;height:1rem}.search_label svg{width:100%;height:100%;fill:#7C849B}.search_result{padding:0.5rem 1rem}.search_result:not(.passive):hover{background-color:var(--code-bg);color:#fff}.search_result.passive{display:grid}.search_results{width:100%;background-color:var(--choice-bg);color:var(--text);border-radius:var(--radius);box-shadow:0 1rem 4rem rgba(0,0,0,0.17) !important;position:absolute;top:125%;display:grid;overflow:hidden;z-index:3}.search_results:empty{display:none}.search_title{padding:0.25rem 1rem !important;background-color:#30c992;color:var(--light);margin:0;font-size:1.25rem}.search_title:empty{display:none}.search_submit{position:absolute;--margin: 3px;right:var(--margin);top:var(--margin);bottom:var(--margin);z-index:9;cursor:pointer;border-radius:calc(var(--radius) / 2)}#results .search_title,#results .search_result{padding:0.5rem 0}.authorbox_bio{margin-top:8px}.authorbox_social{margin-top:1rem}.authorbox_links{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:8px}.authorbox_links a{display:inline-flex}.openstreetmap{border:none}.grey,.post_body h2::before{color:#838383}.green{color:#30c992}.small{font-size:1rem}.social{color:#fff}.social:hover{color:#30c992;text-decoration:none}.post-title-prefix{position:absolute;margin-top:5px;font-family:'Major Mono Display';color:#30c992}.share{font-size:16px}.share span{font-family:'Major Mono Display'}.green-list{list-style:none}.social-icons{display:inline-block;background-color:#fff;height:25px;width:25px;vertical-align:middle}.social-icons:hover{background-color:#30c992}.link2{-webkit-mask-image:url("../icons/link2.svg");mask-image:url("../icons/link2.svg");height:26px;width:25px}.github{-webkit-mask-image:url("../icons/github.svg");mask-image:url("../icons/github.svg");height:26px;width:25px}.bluesky{-webkit-mask-image:url("../icons/bluesky.svg");mask-image:url("../icons/bluesky.svg");height:22px;width:25px}.x-logo{-webkit-mask-image:url("../icons/x.svg");mask-image:url("../icons/x.svg");height:22px;width:22px}.mastodon{-webkit-mask-image:url("../icons/mastodon.svg");mask-image:url("../icons/mastodon.svg");height:29px;width:25px}.linkedin{-webkit-mask-image:url("../icons/linkedin.svg");mask-image:url("../icons/linkedin.svg");height:29px;width:25px}.medium{-webkit-mask-image:url("../icons/medium.svg");mask-image:url("../icons/medium.svg");height:20px;width:25px}.rss{-webkit-mask-image:url("../icons/rss.svg");mask-image:url("../icons/rss.svg");height:20px;width:20px}.pt-1{padding-top:1.5rem}.pb-1{padding-bottom:1.5rem}.mt-1{margin-top:1.5rem}.mb-1{margin-bottom:1.5rem}.pt-2{padding-top:3rem}.pb-2{padding-bottom:3rem}.mt-2{margin-top:3rem}.mb-2{margin-bottom:3rem}.flex{display:flex;flex-direction:column;align-items:center}.shadow{box-shadow:0 0 60px rgba(0,0,0,0.17)}@media screen and (min-width: 42rem){.grid-2,.grid-3,.grid-4,.grid-auto,.grid-inverse{display:grid;grid-template-columns:1fr}[class*='grid-']{grid-gap:2rem}.grid-inverse{grid-template-columns:70% 1fr;grid-column-gap:4rem}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(auto-fit, minmax(19rem, 1fr))}.grid-4{grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr))}}.facebook svg{fill:#325c94}.twitter svg{fill:#00abdc}.linkedin svg{fill:#007bb6}.never{height:75vh;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:1.5rem;text-align:center}.inline{display:inline;margin:0}.hidden{display:none}@media screen and (max-width: 769px){.nav_body{flex-direction:column}.nav_body{position:fixed;width:90%;max-width:16.5rem;top:0;bottom:0;background-color:#272727;transition:transform 0.3s var(--easing);overflow-y:auto}.nav_body_right{transform:translateX(100vw);right:0}.nav_body_left{transform:translateX(-100vw);left:0}.nav_close{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-top:10px;margin-left:auto;position:static;z-index:100}.nav_close span{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.nav_close svg{width:1.5rem;height:1.5rem;display:none}.nav_close svg:first-child{display:initial}.nav_close svg.isopen{display:none}.nav_close svg.isopen+svg{display:initial}.nav_brand{position:relative;z-index:999;width:calc(100% - 3rem);padding-left:0}.nav_parent{display:grid}.nav_sub{position:relative;top:initial;padding-top:0}.jsopen::after{content:"";position:fixed;z-index:2;background-color:rgba(0,0,0,0.3);top:0;left:0;right:0;bottom:0}.jsopen .nav_body{transform:translateX(0);z-index:98;padding-left:1.5rem;padding-right:1.5rem}.jsopen .nav_parent:first-child{margin-top:4.4rem}.jsopen .nav .follow{justify-content:flex-start;flex:initial;margin-top:0.75rem}.to_top{margin-left:-15px}}@keyframes pulse{0%{opacity:1}75%{opacity:0.1}100%{opacity:1}}code{font-weight:400;overflow-y:hidden;display:block;font-family:'Monaco', monospace;word-break:break-all}code.noClass{color:#30c992;display:inline;line-break:anywhere}.windows .highlight{overflow-x:hidden}.windows .highlight:hover{overflow-x:auto}.highlight{display:grid;width:100%;background:#343434 !important;border-radius:0.5rem;position:relative;padding:0 1rem;margin:1.5rem auto 1rem auto;overflow-x:auto}.highlight_wrap{background:#343434 !important;border-radius:0.5rem;position:relative;margin:1.5rem auto 1rem auto}.highlight_wrap+.highlight_wrap{margin-top:2.25rem}.highlight_wrap:hover>div{opacity:1}.highlight_wrap .lang{position:absolute;top:0;right:0;text-align:right;width:7.5rem;padding:0.5rem 1rem;font-style:italic;text-transform:uppercase;font-size:67%;opacity:0.5;color:var(--light)}.highlight_wrap:hover .lang{opacity:0.1}.highlight .highlight{margin:0}.highlight pre{color:var(--light) !important;background-color:#343434 !important;border-radius:4px;font-family:'Monaco', monospace;padding:1.5rem 0.5rem}.highlight table{display:grid;max-width:100%;margin-bottom:0;background:transparent}.highlight td,.highlight th{padding:0}.highlight .lntd{width:100%;border:none}.highlight .lntd:first-child,.highlight .lntd:first-child pre{width:2.5rem !important;padding-left:0;padding-right:0;color:rgba(255,255,255,0.5);user-select:none}.highlight .lntd:first-child pre{width:100%;display:flex;align-items:center;flex-direction:column}.err{color:#a61717;background-color:#e3d2d2}.hl{width:100%;background-color:rgba(255,255,255,0.25)}.ln,.lnt{margin-right:0.75rem;padding:0;transition:opacity 0.3s var(--ease)}.ln,.ln span,.lnt,.lnt span{color:rgba(255,255,255,0.5);user-select:none}.k,.kc,.kd,.kn,.kp,.kr,.kt,.nt{color:#6ab825;font-weight:500}.kn,.kp{font-weight:400}.nb,.no,.nv{color:#24909d}.nc,.nf,.nn{color:#447fcf}.s,.sa,.sb,.sc,.dl,.sd,.s2,.se,.sh,.si,.sx,.sr,.s1,.ss{color:#ed9d13}.m,.mb,.mf,.mh,.mi,.il,.mo{color:#3677a9}.ow{color:#6ab825;font-weight:500}.c,.ch,.cm,.c1{color:#999;font-style:italic}.cs{color:#e50808;background-color:#520000;font-weight:500}.cp,.cpf{color:#cd2828;font-weight:500}.gd,.gr{color:#d22323}.ge{font-style:italic}.gh,.gu,.nd,.na,.ne{color:#ffa500;font-weight:500}.gi{color:#589819}.go{color:#ccc}.gp{color:#aaa}.gs{font-weight:500}.gt{color:#d22323}.w{color:#666}.hljs-string{color:#6ab825}.hljs-attr{color:#ed9d13}.p .hljs-attr{color:var(--light)}.pre_wrap{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.pre_nolines.line .ln{display:none}.panel_box{display:inline-flex;perspective:300px;grid-gap:0.5rem;transition:opacity 0.3s var(--easing);background:var(--code-bg);padding:0.5rem 1.5rem;border-radius:2rem;align-items:center;position:absolute;right:0rem;top:-2.1rem;opacity:0}.panel_icon{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0.1rem;transform-origin:50% 50%;background-size:100%;background-repeat:no-repeat}.panel_icon.active{animation:pulse 0.1s linear}.panel_icon svg{fill:var(--light);width:1.5rem;height:1.5rem}.panel_hide{display:none}.panel_from{position:absolute;color:var(--theme);bottom:0;font-size:1.5rem;font-weight:500;padding:0.5rem 0;cursor:pointer;letter-spacing:0.1px;z-index:19}.panel_expanded .panel_from{display:none}html{--card-border: color-mix(in srgb, var(--text) 12%, transparent);--card-border-hover: rgba(48,201,146,0.45)}@keyframes card-flash{from{opacity:1}to{opacity:0}}.resume_defs{position:absolute;width:0;height:0;overflow:hidden}.resume_halo_color{flood-color:#30c992;flood-opacity:0.18}.resume{--resume-border: var(--card-border)}.resume ol,.resume ul{list-style:none;padding:0}.resume_header{margin-bottom:2rem}.resume_stats{display:grid;grid-template-columns:repeat(auto-fit, minmax(9rem, 1fr));gap:1px;margin-top:1rem;background:var(--resume-border);border:1px solid var(--resume-border);border-radius:2px;overflow:hidden}.resume_stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:1rem 1.25rem;background:#272727}.resume_stat dd{font-family:'Major Mono Display', monospace;font-size:2.25rem;line-height:1.1;color:#30c992;font-variant-numeric:tabular-nums}.resume_stat dt{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.08em;color:#838383}.resume_layout{display:grid;grid-template-columns:minmax(0, 1fr);gap:2rem}@media screen and (min-width: 1024px){.resume_layout{grid-template-columns:minmax(0, 1fr) 16rem;gap:3rem}}.resume_main{min-width:0}@media screen and (min-width: 1024px){.resume_aside{grid-column:2;grid-row:1;position:sticky;top:5.5rem;align-self:start;max-height:calc(100vh - 6.5rem);overflow-y:auto;scrollbar-width:thin}}.resume_panel+.resume_panel{margin-top:1.75rem}.resume_panel_title{padding:0 0 0.5rem;margin-bottom:0.5rem;font-family:'Major Mono Display', monospace;font-size:1.1rem;color:#30c992;border-bottom:1px solid #424242}.resume_toc a{display:block;padding:0.3rem 0 0.3rem 1rem;font-size:1rem;color:var(--text) !important;opacity:0.6;border-left:2px solid transparent;transition:opacity 0.2s, border-color 0.2s, color 0.2s}.resume_toc a:hover{opacity:1;text-decoration:none}.resume_toc a.is-active{opacity:1;color:#30c992 !important;border-left-color:#30c992}@media screen and (max-width: 1023px){.resume_toc+.resume_toc{margin-top:0.5rem}.resume_toc .resume_panel_title{display:none}.resume_toc ol{display:flex;gap:0.5rem;overflow-x:auto;scrollbar-width:none;padding-bottom:0.25rem}.resume_toc a{white-space:nowrap;padding:0.35rem 0.8rem;border:1px solid var(--resume-border);border-radius:2px}.resume_toc a.is-active{border-color:#30c992}}.resume_track{--dot-y: 1rem;position:relative}@media screen and (min-width: 1024px){.resume_track{padding-left:1.25rem !important}.resume_track::before,.resume_track::after{content:'';position:absolute;top:var(--dot-y);left:4px;width:2px}.resume_track::before{bottom:var(--dot-y);background:rgba(255,255,255,0.08)}.resume_track::after{height:var(--fill, 0px);background:linear-gradient(to bottom, rgba(48,201,146,0.2), #30c992)}.resume_track a{position:relative;padding:0.3rem 0 0.3rem 0.5rem;line-height:1.4;border-left:none}.resume_track a::before{content:'';position:absolute;top:50%;left:-1.25rem;box-sizing:border-box;width:10px;height:10px;margin-top:-5px;border:2px solid #555;border-radius:50%;background:#272727;z-index:1;transition:border-color 0.2s, background 0.2s, box-shadow 0.2s}.resume_track a:hover::before{border-color:#30c992}.resume_track a.is-passed{opacity:0.8}.resume_track a.is-passed::before{border-color:#30c992}.resume_track a.is-active::before{border-color:#30c992;background:#30c992;box-shadow:0 0 0 3px rgba(48,201,146,0.2)}.resume_track a.is-current::after{content:'';position:absolute;top:50%;left:-1.25rem;box-sizing:border-box;width:10px;height:10px;margin:-5px 0 0;border-radius:50%;border:1px solid #30c992;animation:resume-pulse 2.4s ease-out infinite}}.resume_actions{display:flex;gap:0.5rem;margin-top:1.75rem}@media screen and (max-width: 1023px){.resume_actions{display:none}}.resume_action{flex:1;justify-content:center;padding:0.4rem 0.5rem;font-family:inherit;font-size:0.75rem;cursor:pointer;gap:0.4rem}.resume_action .svg-icon{width:0.95rem;height:0.95rem;color:#30c992;transition:color .4s var(--easing)}.resume_action:hover .svg-icon,.resume_action:focus-visible .svg-icon{color:#1e1e1e}.resume_section+.resume_section{margin-top:2.5rem}.resume_section h2{margin-top:0}.resume .jobs{margin-top:1.5rem}.resume .job{position:relative;padding:0}.resume .job+.job{margin-top:1.25rem}.resume .job_card{position:relative;isolation:isolate;background:var(--post-bg);border:1px solid var(--card-border);border-radius:2px;transition:border-color 0.6s ease;padding:1.25rem 1.5rem;transition:border-color 0.6s ease,opacity 0.3s,filter 0.3s,transform 0.3s var(--easing)}.resume .job_card::before{content:'';position:absolute;inset:-1px;z-index:-1;border:1px solid #30c992;border-radius:inherit;background:rgba(48,201,146,0.06);opacity:0;pointer-events:none}.resume .job_card:hover,.resume .job_card:has(:focus-visible){border-color:var(--card-border-hover);transition-duration:0.15s}@media (prefers-reduced-motion: no-preference){.resume .job_card:hover::before,.resume .job_card:has(:focus-visible)::before{animation:card-flash 0.6s ease-out}}@media screen and (max-width: 769px){.resume .job_card{padding:1rem 1.1rem}}.resume .job_card blockquote{margin:0;padding:0;background:none;border:none}.resume .job_period{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 0.5rem;padding:0;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,"DejaVu Sans Mono","Liberation Mono",monospace;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;color:#838383}.resume .job_arrow{color:#30c992}.resume .job_duration{margin-left:auto;padding:0 0.45rem;border:1px solid #424242;border-radius:2px;text-transform:none}.resume .job--current .resume .job_duration{color:#30c992;border-color:rgba(48,201,146,0.5)}.resume .job_title{display:grid;grid-template-columns:auto 1fr;align-items:center;margin:0.4rem 0 0;padding:0;font-size:1.45rem;line-height:1.25}.resume .job_company{font-weight:400;color:#30c992;text-underline-offset:0.2em}.resume .job_title>.link{grid-row:1;grid-column:2}.resume .job_role{grid-column:1 / -1;margin-top:0.15rem;font-size:1.05rem;color:#9a9a9a}.resume .job_clients{margin-top:1.1rem;padding-left:1.25rem;border-left:1px dashed #424242}.resume .job_client{position:relative;padding:0}.resume .job_client+.job_client{margin-top:1.5rem}.resume .job_client::before{content:'';position:absolute;top:0.4rem;left:calc(-1.25rem - 4px);width:7px;height:7px;border:1px solid #30c992;border-radius:50%;background:#272727}.resume .job_client .job_title{font-size:1.2rem;margin-top:0.25rem}.resume .job_client .job_role{font-size:0.95rem}.resume .job_client .job_stack_label{flex-basis:4.5rem}.resume .job_summary{padding:0.75rem 0 0}.resume .job_details{margin-top:0.9rem;border-top:1px dashed #424242;padding-top:0.2rem}.resume .job_details h4{margin:1rem 0 0.25rem;padding:0;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#9a9a9a}.resume .job_details ul{padding:0}.resume .job_details li{position:relative;padding:0.2rem 0 0.2rem 1.2rem}.resume .job_details li::before{content:'›';position:absolute;left:0.2rem;color:#30c992}.resume .job_details li li{padding-left:1rem}.resume .job_details li li::before{content:'–';left:0}.resume .job_stack{display:flex;align-items:baseline;gap:0.75rem;margin-top:0.9rem}.resume .job_stack+.resume .job_stack{margin-top:0.5rem}@media screen and (max-width: 769px){.resume .job_stack{flex-direction:column;gap:0.35rem}.resume .job_stack .job_stack_label{flex-basis:auto}}.resume .job_stack_label{flex:0 0 5.5rem;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,"DejaVu Sans Mono","Liberation Mono",monospace;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.08em;color:#30c992}.resume .chips{display:flex;flex-wrap:wrap;gap:0.35rem;padding:0}.resume .chips li{padding:0}.resume .chips li.chip{padding:0.1rem 0.55rem;font-size:0.78rem;line-height:1.6;color:var(--text);background:rgba(48,201,146,0.05);border:1px solid rgba(48,201,146,0.25);border-radius:2px}.resume_group{padding:0.5rem 1.5rem}@media screen and (max-width: 769px){.resume_group{padding:0.25rem 1.1rem}}.resume_group p{padding:0}.resume_group_intro{padding:0.75rem 0}.resume_row{padding:1rem 0}.resume_row+.resume_row{border-top:1px dashed #424242}.resume_row_label{margin:0 0 0.9rem;padding:0;font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,"DejaVu Sans Mono","Liberation Mono",monospace;font-size:0.75rem;font-weight:400;line-height:1.6;text-transform:uppercase;letter-spacing:0.08em;color:#30c992}.resume_row_body{min-width:0}.resume_row_body ul,.resume_row_body ol{padding:0}.resume_row_body li{padding:0}.resume_row_body .chips{gap:0.5rem}.resume_row_body .chips li.chip{padding:0.2rem 0.7rem;font-size:0.9rem}.resume_tiles li,.resume_cards li{display:flex;align-items:center;gap:0.9rem;min-width:0;padding:0.85rem 1rem !important;border:1px solid var(--resume-border);border-radius:2px;background:rgba(48,201,146,0.03);transition:border-color 0.2s, background 0.2s}.resume_tiles li:hover,.resume_cards li:hover{border-color:rgba(48,201,146,0.5);background:rgba(48,201,146,0.07)}.resume_icon{flex:none;display:flex;align-items:center;justify-content:center;padding:2px;color:#30c992;filter:url(#resume-icon-halo)}.resume_icon .svg-icon{width:2.1rem;height:2.1rem}.resume_tiles{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:0.75rem}@media screen and (max-width: 600px){.resume_tiles{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media screen and (max-width: 420px){.resume_tiles{grid-template-columns:minmax(0, 1fr)}}.resume_tile_label{font-size:0.95rem;line-height:1.35}.resume_cards{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.75rem}@media screen and (max-width: 480px){.resume_cards{grid-template-columns:minmax(0, 1fr)}}.resume_card_text{display:flex;flex-direction:column;gap:0.2rem;min-width:0}.resume_card_kicker{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,"DejaVu Sans Mono","Liberation Mono",monospace;font-size:0.75rem;letter-spacing:0.08em;color:#30c992}.resume_card_name{font-size:0.95rem;line-height:1.3}.resume.can-reveal .job .job_card,.resume.can-reveal .resume_group{opacity:0;transform:translateY(14px)}.resume.can-reveal .job.is-visible .job_card,.resume.can-reveal .resume_group.is-visible{opacity:1;transform:none}@keyframes resume-pulse{0%{transform:scale(0.6);opacity:1}100%{transform:scale(1.8);opacity:0}}@media (prefers-reduced-motion: reduce){.resume_track a.is-current::after{animation:none}}@media print{#hex-bg,.nav_header,.footer,.to-top,.resume_aside,.link{display:none !important}body{background:#fff;color:#222}.content{padding-top:0}.resume{--text: #222;--header-text: #000;--post-bg: transparent;--resume-border: #ddd;color:#222}.resume_layout{display:block}.resume_stat{background:#fff}.resume.can-reveal .job .job_card,.resume.can-reveal .resume_group{opacity:1;transform:none}.resume .job,.resume .resume_row{break-inside:avoid}.resume .job_card{border-color:#ddd}.resume .chip{color:#222;border-color:#bbb;background:none}.resume .resume_tiles li,.resume .resume_cards li{background:none;border-color:#ddd}.resume .resume_icon{color:#222}.resume_halo_color{flood-color:#000;flood-opacity:0.08}.resume_halo_color .resume_card_kicker{color:#555}}#hex-bg{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none;user-select:none}.hex{position:absolute;font-family:'Major Mono Display', monospace;line-height:1;color:var(--text);opacity:0;transition:opacity var(--hex-fade, 0.7s) ease}.hex.on{opacity:0.25;transition:opacity 1s ease, color 1s ease, text-shadow 1s ease}.hex.hot{color:#30c992;opacity:0.85;text-shadow:0 0 0.6em rgba(48,201,146,0.6);transition:opacity 0.15s ease}header,main,footer{position:relative;z-index:1}.post_body h2{color:#30c992}.post_body h2::before{content:'# '}.post_body:has(>.project){display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:1rem}.post_body:has(>.project)>:not(.project){grid-column:1 / -1}@media screen and (min-width: 42rem){.post_body:has(>.project){grid-template-columns:repeat(2, minmax(0, 1fr))}}.project{position:relative;isolation:isolate;background:var(--post-bg);border:1px solid var(--card-border);border-radius:2px;transition:border-color 0.6s ease;display:flex;flex-direction:column;gap:0.75rem;padding:1.25rem 1.5rem 1.1rem}.project::before{content:'';position:absolute;inset:-1px;z-index:-1;border:1px solid #30c992;border-radius:inherit;background:rgba(48,201,146,0.06);opacity:0;pointer-events:none}.project:hover,.project:has(:focus-visible){border-color:var(--card-border-hover);transition-duration:0.15s}@media (prefers-reduced-motion: no-preference){.project:hover::before,.project:has(:focus-visible)::before{animation:card-flash 0.6s ease-out}}@media (prefers-reduced-motion: no-preference){.project{animation:project-in 0.6s var(--easing) both;animation-delay:calc(var(--i) * 90ms)}}.project>*{margin:0}@keyframes project-in{from{opacity:0;transform:translateY(0.75rem)}}.project_name{font-family:'Monaco', monospace;font-size:1.15rem;font-weight:400;line-height:1.35;overflow-wrap:anywhere}.post_content .project_name a{color:var(--header-text);text-decoration:none}.project_name a::after{content:'';position:absolute;inset:0;z-index:0}.project_repo::after{content:'';display:inline-block;width:1.1rem;height:1.1rem;margin-left:0.5rem;vertical-align:middle;background:url("../icons/link.svg") center/100% no-repeat;opacity:0;transition:opacity 0.3s ease}.project:hover .project_repo::after,.project:has(:focus-visible) .project_repo::after{opacity:1;transition-duration:0.15s}.project_owner{display:block;font-size:0.8em;color:#7f7f7f}.project_desc{flex:1}.project_desc p{padding:0;margin:0}.project_tags{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:0.5rem}.project_tags:empty{display:none}.post_content .project_tag{margin:0;padding:0.15rem 0.6rem;font-size:0.75rem}.post_content .project_stats{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem 1.25rem;min-height:1.5rem;margin:0;padding:0.75rem 0 0;border-top:1px dashed var(--card-border);list-style:none;font-family:'Monaco', monospace;font-size:0.75rem;color:#9a9a9a}.post_content .project_stats li{display:inline-flex;align-items:center;gap:0.4rem;margin:0;padding:0}@media (prefers-reduced-motion: no-preference){.post_content .project_stats li{animation:project-stat-in 0.4s ease both}}.post_content .project_stats svg{fill:currentColor}@keyframes project-stat-in{from{opacity:0}}.project_lang{width:0.65rem;height:0.65rem;border-radius:50%;background:var(--lang, #7f7f7f)}.project_archived{color:#f0b37e}

/*# sourceMappingURL=styles.css.map */