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{font-size:100%;font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}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:none}table{border-collapse:collapse;border-spacing:0}html{box-sizing:border-box}*,:before,:after{box-sizing:inherit}::selection{color:#fff;background:#13b9e0}.space{height:1px}.hide{position:absolute;top:-9999px;left:-9999px}.hidden{display:none}.clear{clear:both}@media only screen and (min-width:64.063em){.tablet-clear{clear:both}}@media only screen and (min-width:40.063em) and (max-width:64em){.mobiletotablet-clear{clear:both}}.floatleft{float:left}.floatright{float:right}img.floatleft,.img.floatright{position:relative}.alignleft{text-align:left}.alignright{text-align:right}em{font-style:italic}.embed-container{max-width:100%;height:0;padding-bottom:56.25%;position:relative;overflow:hidden}.embed-container iframe,.embed-container object,.embed-container embed{width:100%;height:100%;position:absolute;top:0;left:0}.main{z-index:4;pointer-events:none;position:relative}@media (min-width:640px){.main{margin-left:var(--header-width);transition:margin-left .25s;overflow-x:clip}.main.menu-active{margin-top:0;margin-left:calc(var(--header-width) + var(--menu-width))}}.page-container{pointer-events:all}@media (min-width:640px){.page-container{min-width:calc(100vw - var(--header-width));overscroll-behavior-y:none;height:100dvh;overflow:clip auto}}.menu-scrim{z-index:10;background-color:#0000001f;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}html[data-theme=dark] .menu-scrim{background-color:#0006}.menu-scrim{cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility 0s .25s}.menu-active>.menu-scrim{opacity:1;visibility:visible;pointer-events:all;transition:opacity .25s}.header-holder{view-transition-name:site-header;border-bottom:var(--paper-header-line-size) solid var(--paper-header-line-color);flex-direction:column;display:flex}@media (min-width:640px){.header-holder{z-index:5;border-bottom:none;border-right:var(--border-size) solid var(--paper-margin-color);flex-direction:row;position:fixed;top:0;bottom:0;left:0}}::view-transition-old(site-header){mix-blend-mode:normal;animation:none}::view-transition-new(site-header){mix-blend-mode:normal;animation:none}.bsd-header{z-index:var(--pennon-z-index);background-color:var(--background-color);color:var(--shape-color);align-items:center;gap:10px;height:80px;padding:10px;transition:background .5s;display:flex;position:relative}@media (min-width:640px){.bsd-header{border-bottom:none;flex-direction:column;gap:30px;width:100px;height:100%;padding:0 30px}}.bsd-header.scrolled{box-shadow:-1px 0 5px #0000000d}.header-title{display:contents}.header-slot{display:none}@media (max-width:639.98px){.header-title{view-transition-name:header-title;flex:1;order:2;align-items:center;min-width:0;display:flex}.header-menu{view-transition-name:header-action}.header-slot:not(:empty){align-items:center;gap:var(--spacing-xs);min-width:0;display:flex}:is(.header-title:has(.header-slot:not(:empty)) .site-title,.header-menu:has(.header-slot:not(:empty)) .menu-btn){display:none}.site-title,.menu-btn,.header-slot{animation:.25s ease-out .15s both vt-fade-in}.header-slot .title{min-width:0;font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(18px * var(--headline-scale));color:var(--heading-color);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.header-slot .title-link{width:32px;height:32px;color:var(--text-color-opacified);border-radius:var(--border-radius-small);flex-shrink:0;justify-content:center;align-items:center;display:flex}.header-slot .title-link svg{width:18px;height:18px;display:block}.header-slot .title-link .line{fill:none;stroke:currentColor;stroke-width:10px;stroke-linecap:round;stroke-linejoin:round}.header-slot-image{-o-object-fit:contain;object-fit:contain;border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);background-color:#fff;width:60px;height:60px;display:block}@media (prefers-reduced-motion:reduce){.site-title,.menu-btn,.header-slot{animation:none}}}::view-transition-old(header-title){animation:.15s ease-in both vt-fade-out}::view-transition-old(header-action){animation:.15s ease-in both vt-fade-out}::view-transition-new(header-title){animation:none}::view-transition-new(header-action){animation:none}.site-title{font-family:var(--heading-font), sans-serif;white-space:nowrap;text-overflow:ellipsis;color:var(--text-color-opacified);font-weight:700;font-size:calc(16px * var(--headline-scale));text-align:left;pointer-events:none;order:2;line-height:20px;transition:color .5s;overflow:hidden}.site-title span{font-size:11px;line-height:12px;display:block}@media (min-width:640px){.site-title{writing-mode:vertical-rl}.site-title span{font-size:inherit;line-height:inherit;display:inline}}@media (min-width:640px) and (min-height:800px){.site-title{writing-mode:vertical-rl;font-size:20px}}header .logo{color:currentColor;justify-content:center;align-items:space-between;z-index:2;border-radius:var(--border-radius-small);flex-direction:row;order:1;padding:10px;transition:color .2s;display:flex;position:relative}header .logo svg{width:50px;height:50px;margin:-5px;display:block}header .logo:hover{color:var(--background-color-five)}@keyframes rotate-after-anim{0%{transform:rotate(0)}50%{transform:rotate(45deg)}to{transform:rotate(0)}}@media (min-width:640px){header .logo{--logo-size:60px;width:var(--logo-size);height:var(--logo-size);margin:calc((var(--paper-top) - var(--logo-size)) / 2) 0;flex-shrink:0;order:1;align-items:center}header .logo svg{width:60px;height:60px;margin:-10px}}header .logo path.line{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}header .logo .top-left{stroke-dasharray:76.2858;animation:.5s ease-in backwards top-left}@keyframes top-left{0%{stroke-dashoffset:76.2858px}to{stroke-dashoffset:0}}header .logo .middle-section{stroke-dasharray:96.4948;animation:1s linear .5s backwards middle-section}@keyframes middle-section{0%{stroke-dashoffset:96.4948px}to{stroke-dashoffset:0}}header .logo .bottom-right{stroke-dasharray:76.2859;animation:.75s ease-out 1.5s backwards bottom-right}@keyframes bottom-right{0%{stroke-dashoffset:76.2859px}to{stroke-dashoffset:0}}header .logo .connector-bottom-right{stroke-dasharray:6;animation:.55s linear 1.3s backwards connector-bottom-right}@keyframes connector-bottom-right{0%{stroke-dashoffset:-6px}to{stroke-dashoffset:0}}header .logo .connector-top-left{stroke-dasharray:6;animation:.55s ease-in .5s backwards connector-top-left}@keyframes connector-top-left{0%{stroke-dashoffset:-6px}to{stroke-dashoffset:0}}header .logo .back-mid{stroke-dasharray:20;animation:.75s .25s backwards back-mid}@keyframes back-mid{0%{stroke-dashoffset:-20px}to{stroke-dashoffset:0}}header .logo .back-arrow{stroke-dasharray:28.2843;animation:1s backwards back-arrow}@keyframes back-arrow{0%{stroke-dashoffset:28.2843px}to{stroke-dashoffset:0}}.header-menu{order:3;margin-left:auto}@media (min-width:640px){.header-menu{height:var(--paper-top);order:3;align-items:center;margin-top:auto;margin-left:0;display:flex}}.menu-btn{cursor:pointer;text-align:left;color:var(--text-color-opacified);z-index:11;text-indent:100%;white-space:nowrap;background:0 0;border:none;border-radius:50%;padding:10px;line-height:40px;transition:color .5s ease-in-out,transform .5s ease-in-out;display:block;position:relative}.menu-btn .hamburger{width:50px;height:50px;margin:-5px;display:block;position:relative}@media (min-width:640px){.menu-btn{order:3;line-height:60px}.menu-btn .hamburger{width:60px;height:60px;margin:-10px}}.menu-btn .path{fill:none;stroke:currentColor;stroke-width:4px;stroke-dashoffset:0;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20 24.8864 20 24.8864 20 127.124;transition:stroke-dashoffset .5s,stroke-dasharray .5s}.menu-btn.open{transform:rotate(45deg)}.menu-btn.open .path{stroke-dasharray:20 86.0051 0 0 20 86.0051;stroke-dashoffset:-44.8864px}@media screen and (max-width:800px){.menu-btn{display:block}}.footer{text-align:center;font-size:var(--small-font-size);line-height:var(--small-line-height);background-color:#f0f8ff;padding:40px}@property --grown{syntax:"<length>";inherits:true;initial-value:0}@property --card-scale{syntax:"<number>";inherits:true;initial-value:1.04}.work{color:var(--text-color);scrollbar-width:none}.work::-webkit-scrollbar{display:none}@media (min-width:640px){.work{overscroll-behavior-x:contain ;height:100dvh;overflow:auto hidden}.work:before{content:"";z-index:5;pointer-events:none;opacity:0;background:linear-gradient(90deg,#1e243333,#0000);width:20px;height:100dvh;margin-bottom:-100dvh;transition:opacity .25s;display:block;position:sticky;left:0}.work[data-fade-start=true]:before{opacity:1}}.work-listings{--columns:25;--rows:3;--listing-square-size:calc((((100% - (var(--outside-padding) * 2) - (var(--inside-gap) * 2)) / 3)));padding:var(--outside-padding);gap:var(--inside-gap);background-color:var(--background-color);width:100%;height:calc((var(--listing-square-size) * var(--columns)) + (var(--inside-gap) * (var(--columns) - 1)) + (var(--outside-padding) * 2));grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto repeat(var(--columns), 1fr);grid-template-areas:"intro intro intro""me me profile""me me profile""blog listening listening""blog listening listening""codepen contact contact""dribbble projects projects""servoscanner servoscanner servoscanner""servoscanner servoscanner servoscanner""current current current""current current current""scribe scribe scribe""scribe scribe scribe""obliqua obliqua obliqua""obliqua obliqua obliqua""polidex polidex polidex""polidex polidex polidex""mesh retrospective retrospective""mesh retrospective retrospective""title-work title-work title-work""hipages hipages hipages""hipages hipages hipages""domain domain domain""domain domain domain""internetrix internetrix internetrix""internetrix internetrix internetrix";display:grid;overflow:hidden}@media (min-width:640px){.work-listings{--rows:1;--columns:29;--listing-square-size:calc((((100dvh - (var(--outside-padding) * 2) - (var(--inside-gap) * 2)) / 3)));height:100dvh;width:calc((var(--listing-square-size) * var(--columns)) + (var(--inside-gap) * (var(--columns) - 1)) + (var(--outside-padding) * 2));grid-template-rows:1fr 1fr 1fr;grid-template-columns:repeat(var(--columns), 1fr);grid-template-areas:"profile profile intro intro intro listening listening projects codepen dribbble current current mesh scribe scribe scribe scribe scribe scribe obliqua obliqua polidex polidex retrospective retrospective title-work title-work domain domain""me me intro intro intro listening listening servoscanner servoscanner servoscanner current current mesh scribe scribe scribe scribe scribe scribe obliqua obliqua polidex polidex retrospective retrospective hipages hipages domain domain""me me intro intro intro blog blog servoscanner servoscanner servoscanner contact contact mesh scribe scribe scribe scribe scribe scribe obliqua obliqua polidex polidex retrospective retrospective hipages hipages internetrix internetrix"}}@media (min-width:640px) and (max-height:449.98px){.work-listings{--columns:50;grid-template-rows:1fr 1fr;grid-template-areas:"intro intro intro intro intro intro me me me profile listening listening listening blog contact codepen projects current current current servoscanner servoscanner servoscanner servoscanner scribe scribe scribe scribe scribe scribe mesh polidex polidex polidex obliqua obliqua obliqua retrospective retrospective retrospective title-work hipages hipages hipages domain domain domain internetrix internetrix internetrix""intro intro intro intro intro intro me me me profile listening listening listening blog contact dribbble projects current current current servoscanner servoscanner servoscanner servoscanner scribe scribe scribe scribe scribe scribe mesh polidex polidex polidex obliqua obliqua obliqua retrospective retrospective retrospective title-work hipages hipages hipages domain domain domain internetrix internetrix internetrix"}}@media (min-width:640px) and (min-height:600px){.work-listings{--rows:2;--columns:16;--listing-square-size:calc((((100dvh - (var(--outside-padding) * 2) - (var(--inside-gap) * 1)) / 2)));height:100dvh;width:calc(( ((var(--listing-square-size) - (var(--inside-gap) * 2)) / 3) * var(--columns) ) + (var(--inside-gap) * (var(--columns) - 1)) + (var(--outside-padding) * 2));grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(var(--columns), 1fr);grid-template-areas:"intro intro intro intro projects projects scribe scribe scribe scribe scribe scribe retrospective retrospective title-work title-work""intro intro intro intro current current scribe scribe scribe scribe scribe scribe retrospective retrospective hipages hipages""intro intro intro intro current current scribe scribe scribe scribe scribe scribe obliqua obliqua hipages hipages""me me me listening listening servoscanner servoscanner servoscanner servoscanner polidex polidex codepen obliqua obliqua domain domain""me me me listening listening servoscanner servoscanner servoscanner servoscanner polidex polidex dribbble contact contact domain domain""me me me profile profile servoscanner servoscanner servoscanner servoscanner mesh mesh mesh blog blog internetrix internetrix"}}@media (min-width:640px) and (min-height:1200px){.work-listings{--rows:6;--columns:11;--listing-square-size:calc((((100dvh - (var(--outside-padding) * 2) - (var(--inside-gap) * 5)) / 6)));height:100dvh;width:calc((var(--listing-square-size) * var(--columns)) + (var(--inside-gap) * (var(--columns) - 1)) + (var(--outside-padding) * 2));grid-template-rows:repeat(var(--rows), 1fr);grid-template-columns:repeat(var(--columns), 1fr);grid-template-areas:"intro intro intro codepen dribbble projects projects polidex polidex title-work title-work""intro intro intro contact contact current current polidex polidex hipages hipages""me me profile obliqua obliqua current current retrospective retrospective hipages hipages""me me profile obliqua obliqua mesh mesh retrospective retrospective domain domain""blog listening listening servoscanner servoscanner servoscanner scribe scribe scribe domain domain""blog listening listening servoscanner servoscanner servoscanner scribe scribe scribe internetrix internetrix"}}.work-listings .item{scroll-snap-align:start;animation:1s both fadeIn;position:relative}.work-listings .item:first-child{animation-delay:50ms}.work-listings .item:nth-child(2){animation-delay:.1s}.work-listings .item:nth-child(3){animation-delay:.15s}.work-listings .item:nth-child(4){animation-delay:.2s}.work-listings .item:nth-child(5){animation-delay:.25s}.work-listings .item:nth-child(6){animation-delay:.3s}.work-listings .item:nth-child(7){animation-delay:.35s}.work-listings .item:nth-child(8){animation-delay:.4s}.work-listings .item:nth-child(9){animation-delay:.45s}.work-listings .item:nth-child(10){animation-delay:.5s}.work-listings .item:nth-child(11){animation-delay:.55s}.work-listings .item:nth-child(12){animation-delay:.6s}.work-listings .item:nth-child(13){animation-delay:.65s}.work-listings .item:nth-child(14){animation-delay:.7s}.work-listings .item:nth-child(15){animation-delay:.75s}.work-listings .item:nth-child(16){animation-delay:.8s}.work-listings .item:nth-child(17){animation-delay:.85s}.work-listings .item:nth-child(18){animation-delay:.9s}.work-listings .item:nth-child(19){animation-delay:.95s}.work-listings .item:nth-child(20){animation-delay:1s}.work-listings img{width:100%;height:auto;display:block}.work-listings a{text-decoration:none;display:block}.home-intro{grid-area:intro}@keyframes hand-wave{0%{transform:rotate(0)}25%{transform:rotate(20deg)}50%{transform:rotate(-20deg)}75%{transform:rotate(20deg)}to{transform:rotate(0)}}.wave{transform-origin:60% 100%;display:inline-block}.wave:hover{animation:.5s forwards hand-wave}.scroll{grid-area:scroll}.scroll svg{width:100%;height:auto;display:block}.spinning-text{transform-origin:50%;animation:10s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.doodle path{stroke:var(--doodle-color);stroke-width:var(--doodle-stroke-size);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.doodle{pointer-events:none;opacity:var(--doodle-opacity)}.title-card>.doodle{--doodle-size:calc(var(--inside-gap) - 6px);width:var(--doodle-size);height:var(--doodle-size);position:absolute;top:calc(100% + 3px)}.title-projects{grid-area:projects;position:relative}.title-projects>.doodle{right:20px}.title-work{grid-area:title-work}.title-work>.doodle{left:30px}.title-card{text-align:center;background-color:var(--background-color-four);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);justify-content:center;align-items:center;display:flex}.title-card h2{font-family:var(--monospace-font), monospace;font-size:var(--small-font-size);color:var(--text-color);font-weight:400;line-height:1.4}@media (min-width:640px) and (max-height:449.98px){.title-card h2{writing-mode:vertical-rl}.title-card>.doodle{display:none}}.home-intro-content{background-color:var(--background-color-two);border:var(--border-size) solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--border-radius);height:100%;position:relative}.home-intro-content .intro-text{padding:var(--inside-padding);text-wrap:pretty;flex-direction:column;gap:10px;display:flex}@media (min-width:640px){.home-intro-content .intro-text{width:100%;height:100%;position:absolute;top:0;left:0;overflow:auto}}.home-intro-content p{text-wrap:pretty;color:var(--text-color);font-size:var(--base-font-size);line-height:var(--base-line-height)}.home-intro-content p.headline{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(var(--base-large-font-size) * var(--headline-scale));line-height:var(--base-large-line-height)}.home-intro-content .intro-speech-bubble{width:30px;height:30px;margin-top:calc(var(--border-size) / 2);top:100%;right:calc(((100% / 3) * 1) + (var(--inside-gap) / 2));position:absolute}.home-intro-content .intro-speech-bubble .outline{stroke-width:var(--border-size)}.home-intro-content .intro-speech-bubble svg{width:120%;height:120%;margin:-10%;display:block}.home-intro-content .intro-speech-bubble svg .bg{fill:var(--background-color-two)}.home-intro-content .intro-speech-bubble svg .outline{fill:none;stroke:var(--border-color);stroke-linejoin:round;stroke-linecap:round}@media (min-width:640px){.home-intro-content .intro-speech-bubble{top:100%;right:calc((100% / 4) + (var(--inside-gap) / 2)) }@media (min-height:1200px){.home-intro-content .intro-speech-bubble{right:calc((100% / 3) + (var(--inside-gap) / 2))}}.home-intro-content .intro-speech-bubble .outline{stroke-width:var(--border-size)}}.home-intro-content .intro-speech-bubble .desktop-bubble{display:none}@media (min-width:640px) and (min-height:600px){.home-intro-content .intro-speech-bubble .desktop-bubble{width:50px;height:50px;display:block}}.home-intro-content .intro-speech-bubble .tablet-bubble{display:none}@media (min-width:640px) and (min-height:600px){.home-intro-content .intro-speech-bubble .tablet-bubble{width:40px;height:40px;display:none}}.home-intro-content .intro-speech-bubble .mobile-bubble{display:block}@media (min-width:640px){.home-intro-content .intro-speech-bubble .mobile-bubble{display:none}}.circle-label{z-index:2;pointer-events:none;width:100%;display:block;position:absolute;top:0;left:0}.circle-label text{font-size:7px;display:none}@media (min-width:640px) and (min-height:600px){.circle-label{width:200%;height:auto;top:-50%;left:-50%}.circle-label text{font-size:6px;display:block}}.codepen{grid-area:codepen;position:relative}.codepen .codepen-doodle{width:100%;height:100%}.codepen a{z-index:2;width:100%;height:100%;color:var(--shape-color);border-radius:50%;justify-content:center;align-items:center;transition:scale .25s;display:flex;position:relative}.codepen a:hover{scale:var(--card-scale)}.codepen a:active{scale:var(--card-press)}.codepen a svg{display:block}.dribbble{grid-area:dribbble;position:relative}.dribbble .dribbble-doodle{width:100%;height:100%;display:block}.dribbble a{z-index:2;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;transition:scale .25s;display:flex;position:relative}.dribbble a:hover{scale:var(--card-scale)}.dribbble a:active{scale:var(--card-press)}.mesh{grid-area:mesh;position:relative;container:mesh/size}.mesh-content{border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 1823 1823' xmlns='http://www.w3.org/2000/svg'%3E%3C/svg%3E"),radial-gradient(circle at 0 0,#36083a 5%,#0000 60%),radial-gradient(circle at 33.3333% 0,#6d0834 5%,#0000 60%),radial-gradient(circle at 66.6667% 0,#d3316a 5%,#0000 60%),radial-gradient(circle at 100% 0,#d666ba 5%,#0000 60%),radial-gradient(circle at 0%,#b054c4 5%,#0000 60%),radial-gradient(circle at 33.3333%,#e04d7c 5%,#0000 60%),radial-gradient(circle at 66.6667%,#ffc2e1 5%,#0000 60%),radial-gradient(circle at 100%,#ffe6b8 5%,#0000 60%),radial-gradient(circle at 0 100%,#7d53d0 5%,#0000 60%),radial-gradient(circle at 33.3333% 100%,#da72c0 5%,#0000 60%),radial-gradient(circle at 66.6667% 100%,#e486cd 5%,#0000 60%),radial-gradient(circle at 100% 100%,#ffc7f1 5%,#0000 60%);background-size:calc(100% - 2 * var(--grown) + 2 * var(--card-grow)) calc(100% - 2 * var(--grown) + 2 * var(--card-grow));background-position:50%;background-repeat:no-repeat;align-items:flex-end;width:100%;height:100%;transition:scale .25s;display:flex;position:absolute;top:0;left:0}.mesh-content .overlay{top:var(--grown);left:var(--grown);width:calc(100% - 2 * var(--grown));padding:var(--inside-padding);color:var(--text-color-on-background);font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1rem * var(--headline-scale));line-height:var(--base-line-height);writing-mode:vertical-rl;align-items:center;display:flex;position:absolute}.mesh-content .external{top:auto;bottom:calc(var(--inside-padding) + var(--grown));margin-right:-12px;right:50%}@container mesh (min-aspect-ratio:1){.mesh-content .overlay{height:calc(100% - 2 * var(--grown));writing-mode:horizontal-tb}.mesh-content .external{top:50%;bottom:auto;right:calc(var(--inside-padding) + var(--grown));margin-top:-12px;margin-right:0}}.work-listings :is(.project .main-link,.mesh-content,.horizontal-card a,.vertical-card a,.archive-item a){margin:calc(-1 * var(--grown));padding:var(--grown);width:calc(100% + 2 * var(--grown));height:calc(100% + 2 * var(--grown));transition:--grown .25s,scale .25s,background-color .25s}.work-listings :is(.project .main-link,.mesh-content,.horizontal-card a,.vertical-card a,.archive-item a):hover{--grown:var(--card-grow)}.work-listings :is(.project .main-link,.mesh-content,.horizontal-card a,.vertical-card a,.archive-item a):active{scale:var(--card-press)}.me{grid-area:me;position:relative}.me-content{position:relative}.me-illustration{aspect-ratio:1;position:relative}.me-illustration .back,.me-illustration .front{width:150%;height:150%;display:block;position:absolute;top:-25%;left:-25%}.me-illustration:after{content:"";border-radius:var(--border-radius) 50% var(--border-radius) 50%;border:var(--border-size) solid var(--border-color);width:100%;height:100%;position:absolute}.me-illustration .front{z-index:1}.me-illustration .me-doodle{z-index:2;width:70px;height:70px;position:absolute;bottom:-20px;left:-20px}.me-illustration .me-doodle-sparkles{z-index:2;width:48px;height:auto;position:absolute;top:0;right:-12px}.current-work{grid-area:current}.servoscanner{grid-area:servoscanner}.external{top:calc(var(--inside-padding) + var(--grown));right:calc(var(--inside-padding) + var(--grown));width:24px;height:24px;color:var(--text-color-on-background);opacity:.8;z-index:2;position:absolute}.project{color:var(--text-color)}.project .main-link{border-radius:var(--border-radius);border:var(--border-size) solid var(--border-color);justify-content:space-between;align-items:center;gap:var(--spacing-s);width:100%;height:100%;transition:scale .25s;display:flex;position:relative;overflow:hidden}.project img.image-background{top:calc(var(--grown) - var(--card-grow));left:calc(var(--grown) - var(--card-grow));width:calc(100% - 2 * var(--grown) + 2 * var(--card-grow));height:calc(100% - 2 * var(--grown) + 2 * var(--card-grow));-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;display:block;position:absolute}.project img.image-overlay{top:var(--grown);right:var(--grown);height:calc(100% - 2 * var(--grown));max-width:calc((100% - 2 * var(--grown)) * .6);-o-object-fit:contain;object-fit:contain;border-radius:var(--border-radius);z-index:1;position:absolute}@media (min-width:640px) and (min-height:600px){.project img.image-overlay{max-width:calc((100% - 2 * var(--grown)) * .66)}}.project .overlay{z-index:2;padding-left:var(--inside-padding);padding-bottom:var(--inside-padding);color:var(--text-color-on-background);gap:var(--spacing-s);flex-direction:column;flex-grow:1;margin-top:auto;display:flex;position:relative}.project .overlay-side{max-width:40%}.project .external-link{top:calc(var(--inside-padding) + var(--grown));left:calc(var(--inside-padding) + var(--grown));font-size:var(--small-font-size);line-height:var(--small-line-height);gap:var(--spacing-s);color:var(--text-color-on-background);opacity:1;border-radius:100px;align-items:center;transition:opacity .2s;display:inline-flex;position:absolute}.project .external-link:hover{opacity:.8}.project .logo-overlay{bottom:var(--grown);left:var(--grown);width:calc(100% - 2 * var(--grown));height:calc(100% - 2 * var(--grown));padding:var(--inside-padding);justify-content:center;align-items:center;display:flex;position:absolute}.project .logo-overlay svg,.project .logo-overlay img{width:100%;max-width:160px;height:auto;max-height:100%;display:block}.project .label{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));color:var(--text-color-on-background)}.project .label-small{font-family:var(--monospace-font), monospace;font-size:var(--small-font-size);line-height:var(--small-line-height);color:var(--text-color-on-background)}.listening{grid-area:listening}.listening .listening-to{height:100%;position:relative}.listening button{border:var(--border-size) solid var(--border-color);cursor:pointer;z-index:2;text-indent:100%;white-space:nowrap;background:linear-gradient(-45deg,#000000f2,#0000,#0000,#000000f2);border-radius:50%;width:100%;height:100%;margin:0;padding:0;transition:scale .25s;display:block;position:relative;overflow:hidden}.listening button:hover{scale:var(--card-scale)}.listening button:active{scale:var(--card-press)}.listening .listening-text{color:var(--text-color-on-background);font-size:6px}.listening .listening-outside-text{visibility:hidden}@media (min-width:640px) and (min-height:600px){.listening .listening-inside-text{visibility:hidden}.listening .listening-outside-text{visibility:visible}.listening .listening-text{color:var(--text-color);font-size:7px}.listening button{background:0 0}}.listening .label{padding:var(--inside-padding);z-index:2;color:#000;position:absolute;top:0;left:0}.listening svg{width:140%;height:140%;margin:-20%;transition:scale .25s;display:block;position:absolute;top:0;left:0}.listening .listening-doodle{z-index:3;pointer-events:none;width:70px;height:70px;margin:0;top:-30px;left:auto;right:-30px}.listening .listening-text-overlay{z-index:2;pointer-events:none}.listening #record circle{transform-origin:70px 70px;transition:scale .25s}.listening .listening-to:has(button:hover) #record circle{scale:var(--card-scale)}.listening .listening-to:has(button:hover) .listening-text-overlay{scale:var(--card-scale)}.listening .listening-to:has(button:active) #record circle{scale:var(--card-press)}.listening .listening-to:has(button:active) .listening-text-overlay{scale:var(--card-press)}.something{grid-area:something}.something svg{width:100%;height:auto;display:block}.scribe{grid-area:scribe}.scribe a{background-color:#8795b9}.profile{grid-area:profile}.resume{grid-area:resume}.blog{grid-area:blog}.contact{grid-area:contact}.horizontal-card,.vertical-card{container:card/size}.horizontal-card a,.vertical-card a{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1rem * var(--headline-scale));line-height:var(--large-line-height);background-color:var(--background-color-five);border-radius:var(--border-radius);background-position:50%;background-size:cover;height:100%;position:relative}.horizontal-card a img,.vertical-card a img{width:calc(100% - 2 * var(--grown) + 2 * var(--card-grow));height:calc(100% - 2 * var(--grown) + 2 * var(--card-grow));top:calc(var(--grown) - var(--card-grow));left:calc(var(--grown) - var(--card-grow));-o-object-fit:cover;object-fit:cover;border-radius:var(--border-radius);mix-blend-mode:color-burn;background-color:var(--background-color-four);opacity:.2;display:block;position:absolute}.horizontal-card a .overlay,.vertical-card a .overlay{border-radius:var(--border-radius);width:100%;height:100%;color:var(--text-color-on-background);border:var(--border-size) solid var(--border-color);writing-mode:vertical-rl;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}@container (min-aspect-ratio:1){.horizontal-card a .overlay,.vertical-card a .overlay{writing-mode:horizontal-tb}}.retrospective{grid-area:retrospective;position:relative}.retrospective .retrospective-art{aspect-ratio:1;width:min(100cqw,100cqh);display:block;position:relative}.retrospective .retrospective-art svg{top:calc(var(--border-size) / 2);left:calc(var(--border-size) / 2);width:calc(100% - var(--border-size));height:calc(100% - var(--border-size));display:block;position:absolute;overflow:visible}.retrospective .retrospective-shape{stroke-width:var(--border-size);vector-effect:non-scaling-stroke}.retrospective .retrospective-warp{clip-path:polygon(95.5% 2.25%,4.5% 47.75%,2.25% 50%,4.5% 52.25%,95.5% 97.75%,99% 98%,100% 95%,100% 5%,99% 2%);background:linear-gradient(#6970c3,#95878f 50%,#28323c);width:100%;height:100%;display:block;position:absolute;top:0;left:0}.retrospective .retrospective-warp img{width:auto;max-width:none;height:90%;display:block;position:absolute;top:5%;left:8%}.retrospective .retrospective-warp-playing{visibility:hidden}.retrospective .retrospective-art,.retrospective .retrospective-warp-inner{transition:scale .25s}.retrospective .retrospective-warp-inner{display:block;position:absolute;inset:0}.retrospective a:hover .retrospective-art{scale:var(--card-scale)}.retrospective a:hover .retrospective-warp-inner{scale:calc(1 / var(--card-scale))}.retrospective a:active .retrospective-art{scale:var(--card-press)}.retrospective a:active .retrospective-warp-inner{scale:calc(1 / var(--card-press))}.retrospective .retrospective-warp:after{content:"";background-color:var(--background-color-four);opacity:.85;transition:opacity .4s;position:absolute;inset:0}.retrospective a:hover .retrospective-warp:after,.retrospective a:focus-visible .retrospective-warp:after{opacity:0}@media (prefers-reduced-motion:no-preference){.retrospective a:hover .retrospective-warp-playing,.retrospective a:focus-visible .retrospective-warp-playing{visibility:visible}}.retrospective .retrospective-doodle{z-index:3;width:70px;height:70px;display:block;position:absolute;top:auto;bottom:-25px;left:-25px;rotate:-6deg}.retrospective a{border-radius:var(--border-radius);place-items:center;width:100%;height:100%;display:grid;container-type:size}@keyframes colors{0%{fill:#ffd599}20%{fill:#d2ff9c}40%{fill:#73def4}60%{fill:#ffabd2}80%{opacity:#ff9b85}to{opacity:#ff9b85}}.obliqua{grid-area:obliqua}.obliqua a{border-radius:var(--border-radius);border:var(--border-size) solid var(--border-color);background-color:#d3d3d3;transition:scale .25s,background-color .5s;display:block}.obliqua a .ob-1,.obliqua a .ob-2,.obliqua a .ob-3,.obliqua a .ob-4,.obliqua a .ob-5,.obliqua a .ob-6,.obliqua a .ob-7{fill:gray}.obliqua a:hover{background-color:#fff}.obliqua a:hover .ob-1,.obliqua a:hover .ob-2,.obliqua a:hover .ob-3,.obliqua a:hover .ob-4,.obliqua a:hover .ob-5,.obliqua a:hover .ob-6,.obliqua a:hover .ob-7{animation-name:colors;animation-duration:1s;animation-timing-function:step-end;animation-iteration-count:infinite}.obliqua a:hover .ob-2{animation-delay:-.2s}.obliqua a:hover .ob-3{animation-delay:-.4s}.obliqua a:hover .ob-4{animation-delay:-.6s}.obliqua a:hover .ob-5{animation-delay:-.8s}.obliqua a:hover .ob-6{animation-delay:-1s}.obliqua a:hover .ob-7{animation-delay:-1.2s}.polidex{grid-area:polidex}.hipages{grid-area:hipages}.hipages a{background-color:#fff}.domain{grid-area:domain}.internetrix{grid-area:internetrix}.archive-item a{border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);width:100%;height:100%;transition:scale .25s;display:block;position:relative}.archive-item img.background-image{top:calc(var(--grown) - var(--card-grow));left:calc(var(--grown) - var(--card-grow));width:calc(100% - 2 * var(--grown) + 2 * var(--card-grow));height:calc(100% - 2 * var(--grown) + 2 * var(--card-grow));-o-object-fit:cover;object-fit:cover;position:absolute}.archive-item .label{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));line-height:var(--large-line-height)}.archive-item .date-overlay{bottom:calc(100% - var(--grown));right:var(--grown);font-family:var(--monospace-font), monospace;color:var(--text-color);font-size:var(--small-font-size);line-height:var(--small-line-height);padding-bottom:var(--spacing-s);position:absolute}.archive-item .logo-overlay{top:var(--grown);left:var(--grown);width:calc(100% - 2 * var(--grown));height:calc(100% - 2 * var(--grown));padding:var(--spacing-m);justify-content:center;align-items:center;display:flex;position:absolute}.archive-item .logo-overlay img,.archive-item .logo-overlay svg{width:75%;max-width:160px;height:auto;max-height:100%;display:block}.archive-decoration svg{width:100%;height:auto;display:block}.decorative-1{grid-area:decorative-1}.decorative{border-radius:var(--border-radius);background-color:var(--background-color-four);width:100%;height:100%;position:relative}@media (min-width:640px){.decorative{border-radius:50%}}@media (min-width:640px) and (min-height:1200px){.decorative{border-radius:var(--border-radius)}}.decorative svg{width:110px;height:auto;display:block;position:absolute;top:-20px;right:-30px}@supports (width:calc(1px * tan(atan2(2px, 1px)))){.work-listings{--svg-text-size:var(--small-font-size)}.listening,.codepen,.dribbble,.retrospective{container-type:inline-size}.codepen a,.dribbble a,.listening-to,.retrospective-art{--card-scale:tan(atan2(calc(100cqw + 2 * var(--card-grow)), 100cqw))}.listening .listening-text{font-size:min(calc(tan(atan2(var(--svg-text-size), 140cqw)) * 140px), 9px)}.circle-label text{font-size:min(calc(tan(atan2(var(--svg-text-size), 100cqw)) * 72px), 12px)}@media (min-width:640px) and (min-height:600px){.circle-label text{font-size:min(calc(tan(atan2(var(--svg-text-size), 200cqw)) * 72px), 12px)}}.retrospective text{font-size:min(calc(tan(atan2(var(--svg-text-size), 100cqw)) * 100px), 10px)}}.home-contact{z-index:1;grid-template-columns:1fr;grid-auto-flow:row;justify-content:center;align-items:stretch;height:100dvh;display:grid;position:relative}@media (min-width:640px){.home-contact{grid-template-columns:2fr 1fr;grid-auto-flow:column}}@media (min-width:920px){.home-contact{grid-template-columns:1fr 1fr;grid-auto-flow:column}}.contact-content{--field-height:calc(var(--paper-line-spacing) * 2);padding:var(--paper-line-spacing) var(--outside-padding)}@media (min-width:640px){.contact-content{flex-direction:column;height:100%;padding-top:0;display:flex;overflow:auto}}.contact-image{position:relative}.contact-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.contact-image__credit{bottom:var(--spacing-m);right:var(--spacing-m);font-size:var(--small-font-size);line-height:var(--small-line-height);color:var(--text-color);position:absolute}.home-contact h2{min-height:var(--paper-top);margin-bottom:var(--paper-line-spacing);color:var(--heading-color);font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(var(--base-large-font-size) * var(--headline-scale));translate:0 var(--paper-heading-shift);align-items:center;line-height:1.2;display:flex}@media (max-width:639.98px){.home-contact h2{min-height:0;line-height:calc(var(--paper-line-spacing) * 2)}}.home-contact header nav li a{color:#293853}.home-contact footer .social li a svg{fill:#293853}.home-contact .comment-form{gap:var(--paper-line-spacing);grid-column:span 2;grid-template-areas:"name""email""comment""submit";display:grid}.comment-form .field-name{grid-area:name}.comment-form .field-email{grid-area:email}.comment-form .field-comment{grid-area:comment}.home-contact input,.home-contact textarea{--field-line:calc(var(--paper-line-spacing) * 2);width:100%;height:var(--field-line);font-size:min(var(--base-font-size), var(--paper-text-max-size));line-height:var(--field-line);color:var(--text-color);padding:0 var(--spacing-m);background-color:var(--background-color-two);border:none;border-bottom:var(--paper-header-line-size) solid var(--paper-header-line-color);translate:0 calc(var(--paper-header-line-size) / 2);border-radius:0;outline:none;transition:border-color .5s;display:block}.home-contact input:focus,.home-contact textarea:focus{border-color:var(--highlight-color)}.home-contact textarea{height:calc(var(--field-line) * 3);resize:vertical}.home-contact .submit{flex-direction:row-reverse;display:flex}.home-contact button{margin:calc(-1 * var(--grown));height:calc(var(--field-height) + 2 * var(--grown));font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1rem * var(--headline-scale));line-height:calc(var(--field-height) - var(--border-size) * 2 + 2 * var(--grown));cursor:pointer;padding:0 calc(var(--inside-padding) + var(--grown));border-radius:var(--border-radius);background-color:var(--background-color-five);color:var(--text-color-on-background);border:var(--border-size) solid var(--border-color);min-width:calc(220px + 2 * var(--grown));transition:--grown .25s,scale .25s,background-color .25s;display:block;position:relative;overflow:hidden}.home-contact button svg{width:30px;height:30px;margin-top:-15px;margin-left:-15px;animation:1s linear infinite spin;position:absolute;top:50%;left:50%}.home-contact button svg circle{stroke-width:10px;stroke-dasharray:94.2609 94.2609;stroke-linecap:round;stroke:currentColor}.home-contact button.loading{width:calc(60px + 2 * var(--grown))}.home-contact button:hover{--grown:var(--card-grow)}.home-contact button:active{scale:var(--card-press)}.home-contact .message{padding:calc(var(--paper-line-spacing) / 2) var(--inside-padding);margin-top:var(--paper-line-spacing);border-radius:var(--border-radius);font-size:min(var(--base-font-size), var(--paper-text-max-size));line-height:var(--paper-line-spacing)}.home-contact .message.error{background:var(--error-background);color:var(--error)}.home-contact .message.success{background:var(--success-background);color:var(--success)}.profile-page{padding:var(--outside-padding);gap:var(--inside-gap);grid-template-rows:auto auto auto;grid-template-areas:"intro""education""history";grid-auto-flow:row;display:grid;overflow:hidden}@media (min-width:640px){.profile-page{min-width:calc(100dvw - var(--header-width) - var(--border-size));grid-template:"intro history""intro history""education education"/1fr 1fr;height:100dvh}}@media (min-width:1000px){.profile-page{grid-template-rows:auto auto auto auto auto auto;grid-template-columns:repeat(5,1fr) repeat(3,1fr) repeat(2,1fr);grid-template-areas:"intro intro intro intro intro history history history education education""intro intro intro intro intro history history history education education""intro intro intro intro intro history history history education education""intro intro intro intro intro history history history education education""intro intro intro intro intro history history history education education""intro intro intro intro intro history history history education education"}}.profile-page .experience li:not(:last-child){margin-bottom:var(--spacing-m)}.profile-page .experience .work-experience--job+.work-experience--job:before{content:"";height:var(--spacing-s);display:block}.profile-page .experience .work-experience--employer{font-size:var(--small-font-size);line-height:var(--small-line-height);margin-bottom:var(--spacing-xs);display:block}.profile-page .experience .work-experience--job-title{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:var(--base-font-size);line-height:var(--base-line-height);display:block}.profile-page .experience .work-experience--period{font-size:var(--small-font-size);line-height:var(--small-line-height);color:var(--text-color-opacified);margin-top:var(--spacing-xs);display:block}.profile-page .experience .experience-item{align-items:flex-start;gap:var(--spacing-m);color:inherit;flex-direction:row-reverse;text-decoration:none;display:flex}.profile-page .experience a.experience-item{border-radius:var(--border-radius-small)}.profile-page .experience a.experience-item .work-experience--employer{transition:color .2s}.profile-page .experience a.experience-item:hover .work-experience--employer{color:var(--doodle-color);text-decoration:underline}.profile-page .experience .experience-logo{-o-object-fit:contain;object-fit:contain;border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);background-color:#fff;flex-shrink:0;width:64px;height:64px}.profile-page .experience .experience-details{flex:1;min-width:0;display:block}.profile-page .cutout{margin:calc(-1 * var(--border-size))}.profile-page .cutout-label{font-family:var(--heading-font), sans-serif;border:var(--border-size) solid var(--border-color);background-color:var(--background-color-four);border-radius:var(--border-radius) var(--border-radius) 0 0;height:calc(var(--paper-line-spacing) * 1);padding:0 var(--spacing-m);font-size:14px;line-height:calc(var(--paper-line-spacing) * 1 - var(--border-size));color:var(--text-color-opacified);border-bottom:0}.profile-item-holder{background-color:var(--background-color-two);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.profile-item{font-size:var(--base-font-size);line-height:var(--base-line-height);padding:var(--inside-padding);max-height:100%;color:var(--text-color);overflow:auto}.profile-item h1,.profile-item h2{font-size:calc(var(--small-font-size) * var(--headline-scale));line-height:var(--small-line-height);color:var(--text-color);font-family:var(--heading-font), sans-serif;font-weight:700}.profile-item p{color:var(--text-color);font-size:calc(.37037vw + 14.6667px);line-height:175%}.profile-item p:not(:last-child){margin:0 0 var(--spacing-m) 0}.profile-intro{grid-area:intro;position:relative}@media (min-width:1200px){.profile-intro .profile-item{padding:var(--spacing-xl)}}.history-column{gap:var(--inside-gap);flex-direction:column;grid-area:history;min-height:0;max-height:100%;display:flex}@media (min-width:640px){.history-column{flex-direction:column-reverse}}.profile-history{flex-grow:1}.column-education{gap:var(--inside-gap);flex-direction:column;grid-area:education;min-height:0;max-height:100%;display:flex}@media (min-width:640px){.column-education{flex-direction:row}}@media (min-width:1000px){.column-education{flex-direction:column-reverse}}.profile-education{flex-grow:1}.lozenge-list{flex-wrap:wrap;gap:5px;display:flex}.lozenge-list li{border-radius:var(--border-radius-small);border:var(--border-size) solid var(--border-color);padding:5px}a.profile-card{min-height:100px;font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));line-height:var(--large-line-height);background-color:var(--background-color-five);border-radius:var(--border-radius);background-position:50%;background-size:cover;transition:--grown .25s,scale .25s,background-color .25s;display:block;position:relative;container-type:size}a.profile-card:hover{--grown:var(--card-grow)}a.profile-card:active{scale:var(--card-press)}a.profile-card .overlay{top:calc(-1 * var(--grown));left:calc(-1 * var(--grown));width:calc(100% + 2 * var(--grown));height:calc(100% + 2 * var(--grown));border-radius:var(--border-radius);background-color:inherit;color:var(--text-color-on-background);border:var(--border-size) solid var(--border-color);writing-mode:vertical-rl;justify-content:center;align-items:center;display:flex;position:absolute}@container (min-aspect-ratio:1){a.profile-card .overlay{writing-mode:horizontal-tb}}.me-animate{width:150%;margin:-25%}.profile-me{aspect-ratio:1;background-color:var(--background-color-four);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);flex-shrink:0;position:relative;overflow:hidden}.profile-me .profile-picture{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.profile-links{justify-content:stretch;gap:var(--inside-gap);flex-direction:column;flex-shrink:0;display:flex}@media (max-width:639.98px){.column-education{grid-template-columns:130px minmax(0,1fr);grid-template-areas:"me links""education education";display:grid}.profile-me{grid-area:me}.profile-links{grid-area:links}.profile-education{grid-area:education}a.profile-card{height:100%;min-height:0}}@supports (width:round(up, 1px, 1px)){@media (min-width:640px) and (max-width:999.98px){.profile-page{--picture-size:calc(round(up, 130px, var(--paper-line-spacing)) + var(--border-size));grid-template-columns:var(--picture-size) minmax(0, 1fr) calc((100% - var(--inside-gap)) / 2);grid-template-rows:minmax(0, 1fr) calc(round(up, 110px, var(--paper-line-spacing)) + var(--border-size)) var(--picture-size);grid-template-areas:"intro intro history""intro intro education""me links education"}.column-education,.history-column{display:contents}.profile-history{grid-area:history}.profile-education{grid-area:education}.profile-me{aspect-ratio:auto;grid-area:me}.profile-links{grid-area:links}a.profile-card{height:100%;min-height:0}.profile-item-holder{min-height:0}}@media (min-width:1000px){.column-education{container-type:inline-size}.profile-me{aspect-ratio:auto;height:calc(round(up, 100cqw, var(--paper-line-spacing)) + var(--border-size))}.profile-links{height:calc(round(up, 100px, var(--paper-line-spacing)) - var(--paper-line-spacing) + var(--border-size))}a.profile-card{height:100%;min-height:0}}}.menu-panel{height:var(--menu-height);background-color:var(--background-color);align-items:stretch;display:flex}@media (min-width:640px){.menu-panel{height:100dvh;width:var(--menu-width);animation:.25s slideIn}}@keyframes slideIn{0%{width:0}to{width:var(--menu-width)}}.menu-panel ul{width:100%;padding:var(--spacing-m);gap:var(--spacing-s);grid-template:"link1 link1 link2 link2 toggle"1fr"link3 link3 link4 link4 toggle"1fr/1fr 1fr 1fr 1fr 1fr;display:grid}@media (min-width:640px){.menu-panel ul{padding:var(--outside-padding);gap:var(--inside-gap);grid-template-rows:repeat(8,1fr) 1fr;grid-template-columns:1fr;grid-template-areas:"link1""link2""link3""link4""toggle"}}.menu-panel ul li{container:nav-link/size}.menu-panel ul li.menu-panel__item{grid-column:span 2}.menu-panel ul li.menu-panel__item-toggle{grid-area:toggle}@media (min-width:640px){.menu-panel ul li.menu-panel__item{grid-area:span 2/span 1}.menu-panel ul li.menu-panel__item-toggle{grid-area:span 1/span 1}}.menu-panel ul li a{gap:var(--spacing-s);border-radius:var(--border-radius);width:100%;height:100%;padding:var(--inside-padding);background-color:var(--background-color-two);color:var(--text-color);font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));border:var(--border-size) solid var(--border-color);text-align:center;cursor:pointer;writing-mode:vertical-rl;justify-content:center;align-items:center;text-decoration:none;transition:background-color .3s;display:flex}@container nav-link (min-aspect-ratio:1){.menu-panel ul li a{writing-mode:horizontal-tb}}.menu-panel ul li a:hover{background-color:var(--background-color-four)}.theme-toggle{border-radius:var(--border-radius);border:var(--border-size) solid var(--border-color);flex-direction:column;width:100%;height:100%;display:flex}@media (min-width:640px){.theme-toggle{flex-direction:row}}.theme-toggle__option{background-color:var(--background-color-two);color:var(--text-color-opacified);font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));cursor:pointer;writing-mode:vertical-rl;border-radius:var(--border-radius) var(--border-radius) 0 0;border:none;flex:1;justify-content:center;align-items:center;transition:background-color .2s,color .2s;display:flex}.theme-toggle__option:first-child{border-radius:var(--border-radius) var(--border-radius) 0 0}.theme-toggle__option:last-child{border-radius:0 0 var(--border-radius) var(--border-radius)}@container nav-link (min-aspect-ratio:1){.theme-toggle__option{writing-mode:horizontal-tb}}.theme-toggle__option+.theme-toggle__option{border-top:var(--border-size) solid var(--border-color)}@media (min-width:640px){.theme-toggle__option:first-child{border-radius:var(--border-radius) 0 0 var(--border-radius)}.theme-toggle__option:last-child{border-radius:0 var(--border-radius) var(--border-radius) 0}.theme-toggle__option+.theme-toggle__option{border-top:none;border-left:var(--border-size) solid var(--border-color)}}.theme-toggle__option.is-active{background-color:var(--background-color-four);color:var(--text-color);position:relative}.theme-toggle__option:not(.is-active):hover{background-color:var(--background-color-four)}.not-found{text-align:center;height:100dvh;color:var(--text-color);padding:0 40px}@supports (display:flex){.not-found{flex-direction:column;justify-content:center;display:flex}}.not-found h1{color:currentColor;font-size:48px}.not-found p{color:currentColor;margin-top:20px;font-size:24px}.home-icon{width:80px;height:80px;padding:10px}.home-icon svg{width:60px;height:60px;display:block}.home-icon .home-icon__outline{color:var(--shape-color);stroke:var(--shape-color);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .5s}.home-icon .home-icon__line{color:currentColor;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .5s}.showcase-top{margin-bottom:var(--paper-text-line);position:relative}.showcase .logo{width:min(80px, calc(var(--paper-top) - 24px));aspect-ratio:1;-o-object-fit:contain;object-fit:contain;border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);background-color:#fff;height:auto;display:block}.showcase .showcase-heading{min-height:var(--paper-top);align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) 0;display:flex}.showcase .title{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(var(--base-large-font-size) * var(--headline-scale));color:var(--heading-color);translate:0 var(--paper-heading-shift);line-height:1.2}.showcase .title-link{width:32px;height:32px;color:var(--text-color-opacified);border-radius:var(--border-radius-small);flex-shrink:0;justify-content:center;align-items:center;transition:color .2s;display:flex}.showcase .title-link svg{width:18px;height:18px;display:block}.showcase .title-link svg .line{fill:none;stroke:currentColor;stroke-width:10px;stroke-linecap:round;stroke-linejoin:round}.showcase .title-link:hover,.showcase .title-link:focus{color:var(--doodle-color)}.showcase p{color:var(--text-color);font-size:min(var(--base-font-size), var(--paper-text-max-size));line-height:var(--paper-text-line);translate:0 var(--paper-text-shift)}.showcase p strong{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));line-height:0}.showcase-content{max-width:var(--content-max-width);padding:0 var(--outside-padding) calc(var(--paper-text-line) * 1);margin:0 auto}.showcase-intro{align-items:flex-start;gap:var(--paper-text-line);margin-bottom:var(--paper-text-line);display:flex}.showcase-intro .logo{width:calc(var(--paper-text-line) * 2);flex-shrink:0}.showcase-intro p{min-width:0;font-family:var(--monospace-font), monospace;color:var(--text-color-opacified);translate:0 var(--paper-heading-shift);flex:1}.case-study ul{margin:0 0 var(--paper-text-line);list-style:none}.case-study ul li{padding-left:calc(16px + var(--spacing-s));position:relative}.case-study ul li+li{margin-top:var(--paper-text-line)}.case-study ul li{--bullet:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 2C21 3 23 10 21 15C19 21 11 23 6 19C1 15 2 8 6 5C9 2 14 3 18 7' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.case-study ul li:before{content:"";left:0;top:calc(var(--paper-text-line) / 2);background-color:var(--doodle-color);width:16px;height:16px;opacity:var(--doodle-opacity);-webkit-mask:var(--bullet) center / contain no-repeat;-webkit-mask:var(--bullet) center / contain no-repeat;mask:var(--bullet) center / contain no-repeat;margin-top:-8px;position:absolute}.case-study ul li:nth-child(3n+2){--bullet:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5C3 8 1 14 5 18C9 22 16 22 20 18C24 13 21 6 15 4C12 2 8 3 5 7' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.case-study ul li:nth-child(3n){--bullet:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 4C10 1 3 6 3 12C3 19 9 22 14 21C20 20 23 14 20 8' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.case-study p,.case-study li{font-size:min(var(--body-large-font-size), var(--paper-text-max-size));line-height:var(--paper-text-line);color:var(--text-color);translate:0 var(--paper-text-shift)}.case-study p strong,.case-study li strong{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(1em * var(--headline-scale));line-height:0}.case-study p.description,.case-study li.description{font-family:var(--heading-font), sans-serif;font-weight:700;font-size:calc(min(var(--body-large-font-size), var(--paper-text-max-size)) * var(--headline-scale));translate:0 var(--paper-heading-shift)}.case-study p{margin:0 0 var(--paper-text-line)}.case-study a{color:var(--shape-color);text-decoration:none}.case-study img,.case-study svg{width:auto;max-width:100%;height:auto;margin:0 auto var(--paper-text-line);display:block}.case-study img.rounded{border-radius:var(--border-radius-small)}.case-study figure{margin:0 auto var(--paper-text-line)}.case-study figure img{margin:0 auto}.case-study figure figcaption{text-align:center;font-size:min(var(--small-font-size), var(--paper-text-max-size));line-height:var(--paper-text-line);color:var(--text-color-opacified);translate:0 var(--paper-text-shift)}.case-study img.bordered{background-color:var(--background-color);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius-small)}@supports (width:round(up, 1px, 1px)){.case-study .case-study-contents{container-type:inline-size}.case-study img[style*=--ratio],.case-study .scribe-illustration svg{--column:100cqw;--snapped-height:round(up, calc(min(var(--column), var(--natural-width)) / var(--ratio)), var(--paper-line-spacing));width:calc(var(--snapped-height) * var(--ratio));max-width:none;height:var(--snapped-height);margin-left:calc((var(--column) - var(--snapped-height) * var(--ratio)) / 2);-o-object-fit:cover;object-fit:cover;margin-right:0}.case-study .scribe-illustration svg{--ratio:calc(840 / 680);--natural-width:500px;--column:min(100cqw, 500px)}}@keyframes moon{0%{transform:translate(0)}to{transform:translateY(-40px)}}@keyframes ball{0%{transform:translateY(-40px)}to{transform:translate(0)}}@keyframes squiggle{0%{transform:translate(0)}to{transform:translate(-80px,80px)}}:root{--swizzle-length:766.82px;--steam-length:91.824px}@keyframes swizzle{0%{stroke-dashoffset:calc(-1 * var(--swizzle-length))}50%{stroke-dashoffset:0}}@keyframes steam{0%{stroke-dasharray:var(--steam-length);stroke-dashoffset:calc(-1 * var(--steam-length))}25%{stroke-dasharray:var(--steam-length);stroke-dashoffset:0}50%{stroke-dasharray:var(--steam-length);stroke-dashoffset:var(--steam-length)}to{stroke-dasharray:var(--steam-length);stroke-dashoffset:var(--steam-length)}}.scribe-illustration{max-width:500px;margin:0 auto;position:relative}.scribe-illustration svg{max-width:100%;height:auto;display:block}.scribe-illustration .steam-one,.scribe-illustration .steam-two{stroke-dashoffset:calc(-1 * var(--steam-length))}.scribe-illustration .steam-one{animation:3s linear infinite backwards steam}.scribe-illustration .steam-two{animation:3s linear .25s infinite backwards steam}.scribe-illustration .side-line{stroke-dasharray:120 30 90 30 30;stroke-dashoffset:0}.scribe-illustration .moon{animation:5s infinite alternate moon}.scribe-illustration .ball{animation:5s infinite alternate ball}.scribe-illustration .squiggle{animation:3s linear infinite squiggle}.scribe-illustration .swizzle{stroke-dasharray:var(--swizzle-length);animation:4s infinite alternate swizzle}.masonry{align-items:start;gap:var(--inside-gap);grid-template-columns:1fr;grid-auto-flow:row;display:grid}@media (min-width:640px){.masonry{grid-template-rows:masonry;grid-auto-flow:dense;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}.masonry a{background-color:var(--background-color-two);border-radius:var(--border-radius-small);transition:translate .25s;display:block}.masonry a:hover{translate:0 -5px}.masonry img{border-radius:var(--border-radius-small);border:var(--border-size) solid var(--border-color);width:100%;height:auto;margin:0;display:block}@media (max-width:639.98px){.showcase .showcase-heading,.showcase .showcase-intro .logo{display:none}}.gradient-background{z-index:-1;width:100%;height:100%;display:none;position:fixed;top:0;left:0}@media (min-width:640px){.gradient-background{display:block}}:root{--body-font:monospace;--heading-font:sans-serif;--monospace-font:monospace;--background-color:#fbfaf4;--background-color-grid-lines:#d2e2f1;--paper-margin-color:#e9a3a3;--paper-line-spacing:32px;--paper-lines:repeating-linear-gradient(to bottom, var(--background-color-grid-lines) 0, var(--background-color-grid-lines) 1px, transparent 1px, transparent var(--paper-line-spacing));--paper-header-line:4;--paper-top:calc(var(--paper-line-spacing) * var(--paper-header-line));--paper-text-line:var(--paper-line-spacing);--paper-text-max-size:calc(var(--paper-line-spacing) * .6);--paper-text-centre:.3;--body-baseline-ratio:.355;--heading-baseline-ratio:.38;--paper-text-shift:calc((var(--paper-text-centre) - var(--body-baseline-ratio)) * 1em);--paper-heading-shift:calc((var(--paper-text-centre) - var(--heading-baseline-ratio)) * 1em);--paper-header-line-color:#8fb4d9;--paper-header-line-size:2px;--paper-lines-wash:color-mix(in srgb, var(--background-color) 60%, transparent);--background-color-two:#fff;--background-color-four:#cfdfd0;--background-color-five:#3e6e5a;--secondary-color:#c5d9ec;--third-color:#fff;--text-color:#1e2433;--text-color-opacified:#1e2433b3;--border-color:#1e2433;--border-color-secondary:#c5d9ec;--border-size:3px;--doodle-stroke-size:2px;--doodle-color:#2a3492;--doodle-opacity:.8;--shape-color:#1e2433;--shape-color-on-background:#fff;--text-color-on-background:#fff;--heading-color:#1e2433;--pennon-z-index:4;--menu-width:320px;--menu-height:260px;--error:#c8323c;--error-background:#fde8e6;--success:#2e7d4f;--success-background:#e6f4ea;--highlight-color:#dba40a;--card-grow:4px;--card-press:.98;--headline-scale:1.1;--small-font-size:16px;--small-line-height:150%;--base-font-size:18px;--base-line-height:150%;--base-large-font-size:22px;--base-large-line-height:150%;--body-font-size:18px;--body-line-height:175%;--body-large-font-size:22px;--body-large-line-height:175%;--heading-large-font-size:40px;--heading-large-line-height:52px;--desktop-width:100%;--tablet-width:800px;--mobile-width:640px;--spacing-xs:2px;--spacing-s:10px;--spacing-m:20px;--spacing-l:40px;--spacing-xl:60px;--border-radius:10px;--border-radius-small:5px;--content-max-width:880px;--header-width:80px;--inside-padding:25px;--outside-padding:35px;--inside-gap:35px}html[data-theme=dark]{--glow-ink:#cdf5a2;--glow-color:#cdf5a280;--glow-size:8px;--background-color:#070b08;--background-color-grid-lines:#cdf5a21f;--paper-margin-color:#cdf5a280;--paper-header-line-color:#cdf5a259;--background-color-two:#0d130e;--background-color-four:#17241a;--background-color-five:#1f3a22;--secondary-color:#24402a;--third-color:#070b08;--text-color:var(--glow-ink);--text-color-opacified:#cdf5a2b3;--border-color:var(--glow-ink);--border-color-secondary:#24402a;--shape-color:var(--glow-ink);--doodle-color:#6ef3ff;--doodle-opacity:1;--shape-color-on-background:var(--glow-ink);--text-color-on-background:var(--glow-ink);--heading-color:var(--glow-ink);--error:#ff7a9c;--error-background:#2a0f17;--success:var(--glow-ink);--success-background:#17241a;--highlight-color:#f6ff5ccc}html[data-theme=dark] body{text-shadow:0 0 var(--glow-size) var(--glow-color)}html[data-theme=dark] .work-listings>.item,html[data-theme=dark] .profile-item-holder,html[data-theme=dark] .profile-me,html[data-theme=dark] a.profile-card,html[data-theme=dark] .home-contact button,html[data-theme=dark] .case-study img.bordered,html[data-theme=dark] .masonry img{filter:drop-shadow(0 0 var(--glow-size) var(--glow-color))}html[data-theme=dark] .bsd-header svg,html[data-theme=dark] .me-doodle{filter:drop-shadow(0 0 calc(var(--glow-size) / 2) var(--glow-color))}html[data-theme=dark] .header-holder{box-shadow:0 0 calc(var(--glow-size) * 1.5) var(--glow-color)}@media (min-width:640px) and (min-height:500px){:root{--header-width:100px}}@media (min-width:640px) and (min-height:800px){:root{--small-font-size:16px;--base-font-size:20px;--base-large-font-size:24px;--body-font-size:20px;--body-large-font-size:24px;--inside-padding:30px;--outside-padding:50px;--inside-gap:50px}}@supports (width:calc(1px * round(nearest, tan(atan2(2px, 1px)), 1))){@media (min-width:640px){:root{--paper-header-line:3;--paper-grid-rows:3;--paper-gap-lines:1;--paper-line-target:40px;--paper-page-line-target:42px;--paper-line-count:max(1, round(nearest, tan(atan2(100dvh, var(--paper-page-line-target))), 1));--paper-line-spacing:calc(100dvh / var(--paper-line-count));--inside-gap:calc(var(--paper-line-spacing) * var(--paper-gap-lines) - var(--border-size));--outside-padding:calc(var(--paper-line-spacing) * var(--paper-gap-lines) - (var(--border-size) / 2))}:root:has(.work-listings){--paper-gaps:calc((var(--paper-grid-rows) + 1) * var(--paper-gap-lines));--paper-row-lines:max(1, round(nearest, (tan(atan2(100dvh, var(--paper-line-target))) - var(--paper-gaps)) / var(--paper-grid-rows), 1));--paper-line-count:calc(var(--paper-grid-rows) * var(--paper-row-lines) + var(--paper-gaps))}}@media (min-width:640px) and (max-height:449.98px){:root{--paper-grid-rows:2}}@media (min-width:640px) and (min-height:600px){:root{--paper-grid-rows:6}}@media (min-width:640px) and (min-height:800px){:root{--paper-header-line:2;--paper-gap-lines:1;--paper-line-target:50px;--paper-page-line-target:47px}}}@keyframes vt-fade-in{0%{opacity:0}}@keyframes vt-fade-out{to{opacity:0}}::view-transition-old(root){animation:.15s ease-in both vt-fade-out}::view-transition-new(root){animation:.25s ease-out both vt-fade-in}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation-duration:.01ms}::view-transition-new(root){animation-duration:.01ms}}::selection{background:var(--background-color-four);color:var(--text-color)}.fade-enter{opacity:0;z-index:1}.fade-enter.fade-enter-active{opacity:1;transition:opacity .25s ease-in}html{cursor:url("data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%2220%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath fill%3D%22%23060807%22 d%3D%22M0 0l14 14.347H5.674L0 20z%22 fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") 0 0,pointer;font-size:var(--base-font-size);line-height:var(--base-line-height)}html[data-theme=dark]{cursor:url("data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%2220%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath fill%3D%22%23e2ddd0%22 d%3D%22M0 0l14 14.347H5.674L0 20z%22 fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") 0 0,pointer}body{background-color:var(--background-color);font-family:var(--body-font), monospace}a,button,input,textarea{font-family:inherit}svg{font-family:var(--body-font), monospace}svg text{font-family:var(--monospace-font), monospace}.clearfix:after{content:"";clear:both;display:table}:focus{outline:4px solid var(--highlight-color);outline-offset:4px}.iseeyou,.iseeyou{opacity:0}.showcase-icu.iseeyou{transform:translateY(20px)}.iseeyou.active,.iseeyou.active{opacity:1;animation:.5s showThing}.showcase-icu.iseeyou.active{animation:.5s showThingShowcase;transform:translateY(0)}@keyframes showThing{0%{opacity:0}to{opacity:1}}@keyframes showThingShowcase{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-container,.work-listings,.contact-content{background-image:linear-gradient(var(--paper-header-line-color), var(--paper-header-line-color)), var(--paper-lines);background-repeat:no-repeat;background-size:100% var(--paper-header-line-size), 100% 100%;background-position:0 calc(var(--paper-top) - (var(--paper-header-line-size) / 2)), 0 calc(var(--paper-top) - .5px)}.bsd-header,.menu-panel{background-image:linear-gradient(var(--paper-header-line-color), var(--paper-header-line-color)), linear-gradient(var(--paper-lines-wash), var(--paper-lines-wash)), var(--paper-lines);background-repeat:no-repeat;background-size:100% var(--paper-header-line-size), 100% 100%, 100% 100%;background-position:0 calc(var(--paper-top) - (var(--paper-header-line-size) / 2)), 0 0, 0 calc(var(--paper-top) - .5px)}@media (max-width:639.98px){.bsd-header,.menu-panel{background-image:none}.page-container,.work-listings,.contact-content{background-image:var(--paper-lines);background-position:0 -.5px;background-size:100% 100%}}.page-container:has(.showcase){background-attachment:local}.contact-content{background-color:var(--background-color);background-attachment:local}.overflow{background-color:var(--background-color);z-index:2;backface-visibility:hidden;clip-path:inset(0);position:relative;overflow:hidden}.shape-holder{position:relative}
