.banner-hero[data-astro-cid-zafj3jsv]{contain:layout style}.js-liquid-frame[data-astro-cid-zafj3jsv]{transform:translateZ(0)}.banner-hero-id[data-astro-cid-zafj3jsv]{position:absolute;left:0;bottom:0;z-index:2;max-width:calc(100% - 1.5rem);padding:1.05rem 1.6rem .95rem .15rem}.js-banner-gutter[data-astro-cid-zafj3jsv]{fill:#fff}.js-banner-rim[data-astro-cid-zafj3jsv]{fill:none;stroke:#d0d0d6;stroke-width:1;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}html.dark .js-banner-gutter[data-astro-cid-zafj3jsv]{fill:#8a8b94}html.dark .js-banner-rim[data-astro-cid-zafj3jsv]{stroke:#8a8b94}.folder-svg[data-astro-cid-zfxog3ti]{perspective:400px}.folder-flap[data-astro-cid-zfxog3ti]{transform-origin:2px 14px;transition:transform .4s cubic-bezier(.16,1,.3,1)}.folder-sheet[data-astro-cid-zfxog3ti]{transform-origin:center bottom;transition:transform .4s cubic-bezier(.16,1,.3,1)}.folder-chevron[data-astro-cid-zfxog3ti]{transform:rotate(0);transition:transform .38s cubic-bezier(.16,1,.3,1)}.folder-collapsible-content[data-astro-cid-zfxog3ti]{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s cubic-bezier(.16,1,.3,1),opacity .32s cubic-bezier(.16,1,.3,1)}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=true] .folder-collapsible-content[data-astro-cid-zfxog3ti]{grid-template-rows:1fr;opacity:1}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=true] .folder-chevron[data-astro-cid-zfxog3ti]{transform:rotate(180deg)}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=true] .folder-flap[data-astro-cid-zfxog3ti]{transform:rotateX(-32deg) scaleY(.88) translateY(.5px)}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=true] .folder-sheet[data-astro-cid-zfxog3ti]{transform:translateY(-2.5px)}.folder-collapsible-inner[data-astro-cid-zfxog3ti]{overflow:hidden;min-height:0;transition:transform .4s cubic-bezier(.16,1,.3,1)}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=true] .folder-collapsible-inner[data-astro-cid-zfxog3ti]{transform:translateY(0)}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=false] .folder-collapsible-inner[data-astro-cid-zfxog3ti]{transform:translateY(-4px)}.folder-exp-item[data-astro-cid-zfxog3ti]{transition:opacity .3s cubic-bezier(.16,1,.3,1)}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=true] .folder-exp-item[data-astro-cid-zfxog3ti]{opacity:1}.minimal-folder-item[data-astro-cid-zfxog3ti][data-open=false] .folder-exp-item[data-astro-cid-zfxog3ti]{opacity:.2}.tech-icon{display:inline-flex;align-items:center;justify-content:center}.tech-icon img{max-width:100%;max-height:100%}.tech-pill{padding:.375rem .75rem;border-radius:9999px;background-color:var(--color-grayscale-2, #f4f4f5);border:1px solid var(--color-grayscale-3, #e4e4e7);display:flex;align-items:center;gap:.5rem;cursor:default;user-select:none;color:var(--color-grayscale-12, #09090b);box-shadow:0 1px 2px #00000008}:global(.dark) .tech-pill{background-color:#18181b66;border-color:#27272a80}.tech-pill:hover{background-color:var(--color-grayscale-3, #e4e4e7)}:global(.dark) .tech-pill:hover{background-color:#27272ab3}.tech-grid-tile{position:relative;width:2.75rem;height:2.75rem;border-radius:.75rem;border:1px solid var(--color-grayscale-3, #e4e4e7);background-color:#fff;display:flex;align-items:center;justify-content:center;cursor:default;user-select:none;box-shadow:0 1px 2px #00000008}:global(.dark) .tech-grid-tile{background-color:#18181b99;border-color:#27272a66}.tech-grid-tile:hover{border-color:var(--color-grayscale-4, #d4d4d8)}:global(.dark) .tech-grid-tile:hover{border-color:#3f3f4699}.tech-grid-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:.625rem;padding:.25rem .625rem;font-size:10px;font-family:monospace;letter-spacing:-.025em;background-color:var(--color-grayscale-12, #09090b);color:var(--color-grayscale-1, #fafafa);border:1px solid var(--color-grayscale-3, #27272a);border-radius:.5rem;opacity:0;pointer-events:none;transition:all .2s cubic-bezier(0,0,.2,1);box-shadow:0 10px 15px -3px #0003;z-index:50;white-space:nowrap}.group\/griditem:hover .tech-grid-tooltip{opacity:1;transform:translate(-50%) translateY(-2px)}.tech-grid-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-grayscale-12, #09090b)}.tech-item{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),background-color .2s ease,border-color .2s ease;will-change:opacity,transform}.list-container:hover .tech-item:not(:hover),.grid-container:hover .tech-item:not(:hover){opacity:.45}.tech-item:hover{opacity:1!important;transform:translateY(-1px)}.tech-stack-section.view-list .list-container{display:grid!important}.tech-stack-section.view-list .grid-container,.tech-stack-section.view-grid .list-container{display:none!important}.tech-stack-section.view-grid .grid-container{display:block!important}@media(max-width:639px){.tech-stack-section.view-list .list-container{display:block!important}}
