.tc-card{--card-padding: var(--spacer-3);--card-padding-header: var(--spacer-1);--card-border: var(--border);border:var(--card-border);box-shadow:var(--box-shadow)}.tc-card-body{padding:var(--card-padding)}.tc-card-header{display:flex;padding:var(--card-padding-header) var(--card-padding);border-bottom:var(--card-border);background-color:var(--color-primary);font-family:var(--font-fam-2);font-size:var(--font-size-sm-2)}.tc-card-header:after{content:"";display:inline-block;margin-left:auto;height:var(--font-size-sm-2);width:var(--font-size-sm-2);border-radius:100%;border:var(--card-border)}.tc-card-flush{--card-padding: 0;--card-padding-header: 0}.tc-arrow{display:inline-block;height:.875rem;overflow:visible}.tc-arrow-stem{transition:.3s ease-in-out}.tc-arrow-stroke{stroke-width:3;fill:none;stroke:currentColor}.tc-arrow-external{height:.75rem;transition:.3s ease-in-out}.tc-arrow-external .tc-arrow-wrap{rotate:135deg;transform-origin:26px 26px}a:hover .tc-arrow-external{transform:translate(.125rem,-.125rem)}a:hover .tc-arrow-external .tc-arrow-stem{transform:scaleX(1.2)}.tc-name{font-size:10rem;line-height:.9;margin-bottom:var(--spacer-1)}@media (min-width: 768px){.tc-name{margin-top:var(--spacer-5);margin-left:-4rem}}@media (max-width: 767px){.tc-name{margin-top:-8rem;font-size:clamp(2rem,25vw,10rem)}}.tc-name-first{text-shadow:.5rem .5rem var(--color-primary)}.tc-skill-grid{display:grid;gap:var(--spacer-1);grid-template-columns:repeat(auto-fit,5rem)}.tc-skill-grid-text{display:block;margin-top:var(--spacer-1);font-family:var(--font-fam-2);font-size:var(--font-size-sm-2)}.tc-skill-grid-item{display:flex;justify-content:center;flex-direction:column;aspect-ratio:1/1;border:var(--border);box-shadow:var(--box-shadow-primary);background-color:var(--color-background);text-align:center}.tc-list-link{display:block;padding:var(--spacer-2) 0;padding-right:var(--spacer-4);text-decoration:none;color:var(--color-font);transition:.2s}.tc-list-link:hover{color:var(--color-secondary-dark)}.tc-list-item{border-bottom:1px solid var(--color-font)}.tc-list-item:first-child{border-top:1px solid var(--color-font)}.tc-list-card-link{display:flex;align-items:center;padding:var(--spacer-3);background-color:var(--color-primary);font-family:var(--font-fam-2);transition:.2s}.tc-list-card-link svg,.tc-list-card-link span{pointer-events:none}.tc-list-card-link-icon{display:inline-block;margin-left:auto;height:.75rem;rotate:180deg;transition:.3s ease-in-out}.tc-list-card-link:hover{background-color:var(--color-secondary-tint)}.tc-list-card-link:hover .tc-list-card-link-icon{transform:translate(-.25rem)}.tc-list-cards{display:grid;gap:var(--spacer-1)}.tc-work-dl-group{display:grid;grid-template-columns:1fr 2fr}.tc-work-dl-group:not(:last-child){border-bottom:1px solid var(--color-font)}.tc-work-dl-group>dt,.tc-work-dl-group>dd{padding:.25rem var(--spacer-1);background-color:var(--color-background)}.tc-work-dl-group>dt{border-right:1px solid var(--color-font);font-family:var(--font-fam-2);color:var(--color-font-2)}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}:root{--color-primary: #52fec5;--color-secondary-tint: #ffbdf3;--color-secondary: #ff61e1;--color-secondary-dark: #db00b1;--color-accent: #fcff82;--color-background: #fff;--color-background-2: #eee;--color-font: #333;--color-font-2: #666;--border: 1px solid var(--color-font);--box-shadow: .25rem .25rem 0 var(--color-font);--box-shadow-primary: .25rem .25rem 0 var(--color-primary);--spacer-1: .5rem;--spacer-2: 1rem;--spacer-3: 1.5rem;--spacer-4: 2rem;--spacer-5: 3rem;--font-size-sm-2: .75rem;--font-size-sm-1: .875rem;--font-size-1: 1rem;--font-size-2: 1.25rem;--font-size-3: 2rem;--font-size-4: 3rem;--font-size-5: 5rem;--font-size-6: 7.5rem;--font-fam-1: "Oswald", sans-serif;--font-fam-2: "Noto Sans Mono", monospace;--font-fam-3: "Noto Sans", sans-serif;--nav-height: 4rem;--container-width: 75rem}body{background-color:var(--color-background);color:var(--color-font);font-family:var(--font-fam-3);font-size:1rem;line-height:1.5}body:has(.tc-route-enter-active){overflow:hidden}.tc-col-right{grid-column:var(--right-grid-column)}.tc-col-left{grid-column:var(--left-grid-column)}@media (min-width: 768px){.tc-col-left.tc-content{--left-grid-column: 2 / span 2}}.tc-img,.tc-vid{max-width:100%}.tc-dot{fill:var(--color-background)}.tc-image{padding:var(--spacer-4);background-color:var(--color-background-2)}.tc-image-wrap{position:sticky;top:var(--nav-height);height:calc(100vh - var(--nav-height))}.tc-image-img{position:absolute;inset:0;background-size:cover;background-position:0 0;opacity:.8}.tc-image-pattern{position:absolute;top:0;left:0;height:100%;width:100%;opacity:.4}.tc-image-home{padding:0}@media (max-width: 767px){.tc-image-home .tc-image-wrap{height:10rem}}.tc-content{position:relative;z-index:2}@media (min-width: 768px){.tc-content{--right-grid-column: span 2;--left-grid-column: span 2}}.tc-content-wrap{position:sticky;top:var(--nav-height)}.tc-section{padding:var(--spacer-4)}.tc-col-right .tc-section-bleed{padding-right:0}@media (min-width: 768px){.tc-section-bleed{min-width:calc(100% - var(--spacer-4));width:calc(50vw - var(--spacer-4) - var(--scrollbar-width))}}.tc-container{--right-grid-column: 4 / span 3;--left-grid-column: 1 / span 3;display:grid;grid-template-columns:1fr repeat(4,minmax(auto,calc(var(--container-width) / 4))) 1fr}@media (max-width: 767px){.tc-container{--right-grid-column: 2 / span 4;--left-grid-column: 2 / span 4}}.tc-main:before{content:"";position:fixed;z-index:100;inset:0;background-color:var(--color-primary);opacity:0;pointer-events:none}.opacity-enter-active,.opacity-leave-active{transition:.2s}.opacity-enter-from,.opacity-leave-to{opacity:0}.mt-1{margin-top:var(--spacer-1)!important}.mb-1{margin-bottom:var(--spacer-1)!important}.my-1{margin-top:var(--spacer-1)!important;margin-bottom:var(--spacer-1)!important}.mr-1{margin-right:var(--spacer-1)!important}.ml-1{margin-left:var(--spacer-1)!important}.mt-2{margin-top:var(--spacer-2)!important}.mb-2{margin-bottom:var(--spacer-2)!important}.my-2{margin-top:var(--spacer-2)!important;margin-bottom:var(--spacer-2)!important}.mr-2{margin-right:var(--spacer-2)!important}.ml-2{margin-left:var(--spacer-2)!important}.mt-3{margin-top:var(--spacer-3)!important}.mb-3{margin-bottom:var(--spacer-3)!important}.my-3{margin-top:var(--spacer-3)!important;margin-bottom:var(--spacer-3)!important}.mr-3{margin-right:var(--spacer-3)!important}.ml-3{margin-left:var(--spacer-3)!important}.mt-4{margin-top:var(--spacer-4)!important}.mb-4{margin-bottom:var(--spacer-4)!important}.my-4{margin-top:var(--spacer-4)!important;margin-bottom:var(--spacer-4)!important}.mr-4{margin-right:var(--spacer-4)!important}.ml-4{margin-left:var(--spacer-4)!important}.mt-5{margin-top:var(--spacer-5)!important}.mb-5{margin-bottom:var(--spacer-5)!important}.my-5{margin-top:var(--spacer-5)!important;margin-bottom:var(--spacer-5)!important}.mr-5{margin-right:var(--spacer-5)!important}.ml-5{margin-left:var(--spacer-5)!important}h1{font-family:var(--font-fam-1);font-weight:400;font-size:var(--font-size-4);line-height:1;text-transform:uppercase;letter-spacing:-.0375em}h2,.h2{display:inline-block;position:relative;margin-bottom:var(--spacer-1);font-family:var(--font-fam-2);font-weight:300;font-size:var(--font-size-3);line-height:1.25}h2:before,.h2:before{content:"";position:absolute;z-index:-1;bottom:.25rem;width:100%;height:.5rem;background-color:var(--color-primary)}h2.h3:before,h2.h4:before,.h2.h3:before,.h2.h4:before{content:none}h3,.h3{font-family:var(--font-fam-2);font-weight:300;font-size:var(--font-size-2);line-height:1.25;color:var(--color-font-2)}h4,.h4{font-family:var(--font-fam-2);font-weight:300;font-size:var(--font-size-1);line-height:1.25;color:var(--color-font-2)}em{font-style:italic}p:not(:last-child),.content ul:not(:last-child){margin-bottom:var(--spacer-2)}p+h2,p+h3,.content ul+h2,.content ul+h3{margin-top:var(--spacer-3)}a{color:var(--color-font-2);text-decoration:none}a:hover{color:var(--color-font)}p a,.content ul a,dd a{border-bottom:1px dotted var(--color-primary)}p a:hover,.content ul a:hover,dd a:hover{border-style:solid}.content ul{list-style:disc;padding-left:1rem;font-size:.875rem}.content ul>li{margin:.375rem 0}.content ul>li::marker{color:var(--color-primary);font-size:.875em}.tc-font-mono{font-family:var(--font-fam-2)}.tc-font-small{font-size:var(--font-size-sm-2)}.tc-list-inline{padding:0}.tc-list-inline>li{display:inline-block;margin-right:var(--spacer-1)}.tc-tag{padding:.125rem .25rem;border:var(--border);box-shadow:var(--box-shadow-primary);background-color:var(--color-background);font-family:var(--font-fam-2);font-size:var(--font-size-sm-2);color:var(--color-font)}.tc-nav{position:sticky;z-index:151;top:0;display:grid;grid-template-columns:1fr auto;align-items:center;min-height:var(--nav-height);padding:0 var(--spacer-3);background-color:var(--color-primary)}.tc-nav-logo-link{text-decoration:none}.tc-nav-logo-link:hover .tc-arrow-stem{transform:scaleX(1.2)}.tc-nav-link{text-decoration:none;font-family:var(--font-fam-2);font-size:1rem;color:var(--color-font)}.tc-nav-items{display:flex;gap:var(--spacer-3)}.tc-footer{position:relative;background-color:var(--color-background)}.tc-footer-link{--footer-link-scale: 0;position:relative;display:grid;place-items:center;height:4rem;width:4rem;color:var(--color-font)}.tc-footer-link:after{content:"";position:absolute;inset:0;background-color:var(--color-primary);transform:scale(var(--footer-link-scale));transition:.3s ease-in-out}.tc-footer-link:hover{--footer-link-scale: 1}.tc-footer-link-icon{position:relative;z-index:1;font-size:1.5rem}.tc-footer-items{display:flex}.tc-route-enter-active{transition:.4s .4s}.tc-route-leave-active{transition:.4s}.tc-route-leave-to,.tc-route-enter-from{opacity:0}.tc-main:has(.tc-route-enter-active):before{animation-name:fade;animation-duration:.8s;animation-fill-mode:forwards}@keyframes fade{0%,to{opacity:0}45%,55%{opacity:1}}
