/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--bg-grad-anim-initial:80%;--bg-grad-anim-y:80%;--bg-grad-anim-x:80%}*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-leading:initial}}}@layer theme{:root,:host{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-primary:#071633;--color-primary-inverted:#fff;--color-secondary:#053db3;--color-tertiary:#ff5f49;--color-dark-bg:#030b19;--color-dark-grad-primary:#02bfb5;--color-dark-grad-secondary:#021c87;--color-dark-primary-inverted:#063eb4;--font-regular:"Inconsolata", "Ubuntu Mono", "Trebuchet MS", "Tahoma", monospace;--leading-1:1;--leading-3:1.2;--tracking-1:.04em;--tracking-2:.08em;--tracking-3:.1em;--text-1:.5rem;--text-2:.625rem;--text-3:1rem;--text-4:1.25rem;--text-5:1.5rem;--text-6:1.875rem;--text-7:2.5rem;--spacing-1:5px;--spacing-2:10px;--spacing-3:15px;--spacing-4:20px;--spacing-5:25px;--spacing-6:30px;--spacing-7:45px;--breakpoint-sm:480px;--breakpoint-md:920px;--breakpoint-xl:1440px;--breakpoint-2xl:1920px}}@layer base{body,html{width:100%;height:100%;margin:0}html{-webkit-text-size-adjust:100%;font-variant-ligatures:none;-webkit-font-variant-ligatures:none;text-rendering:optimizelegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-shadow:0 0 1px #00000003;color:var(--color-primary);font-size:100%;overflow:hidden}body{box-sizing:border-box;padding:var(--spacing-3);font-family:var(--font-regular);font-size:var(--text-4);letter-spacing:var(--tracking-1);line-height:var(--leading-3);position:relative;overflow:hidden}@media (height>=600px){body{padding:3vh;font-size:3.7vh}}@media (height>=1440px){body{font-size:3.3vh}}@media (orientation:landscape) and (width>=920px){body{letter-spacing:var(--tracking-3);padding:5.55vh;font-size:3.4vh}}main{box-sizing:border-box;padding:var(--spacing-3) var(--spacing-4) var(--spacing-6);background-color:#efefef;flex-flow:column;height:100%;display:flex;overflow:auto}@media (orientation:landscape) and (width>=920px){main{padding-left:calc(var(--spacing-7) * 2)}}@media (prefers-color-scheme:dark){body:not(.t-light) :is(main){--bg-grad-anim-start-x:80%;--bg-grad-anim-start-y:0%;--bg-grad-anim-end-x:80%;--bg-grad-anim-end-y:80%;--bg-grad-anim-pulse-move:4%;--bg-grad-anim-x:var(--bg-grad-anim-start-x,0%);--bg-grad-anim-y:var(--bg-grad-anim-start-y,0%);background-position:var(--bg-grad-anim-x) var(--bg-grad-anim-y);color:var(--color-primary-inverted);background-color:var(--color-dark-bg);background-image:linear-gradient(168deg, transparent 80%, var(--color-dark-grad-secondary) 85%, var(--color-dark-grad-secondary) 88%, var(--color-dark-grad-primary) 96%);background-size:130% 130%;animation:8s cubic-bezier(.65,.43,.78,1.22) forwards bgPosFadeIn,14s linear 8s infinite bgGradPulse}@media (width>=920px){body:not(.t-light) :is(main){background-image:linear-gradient(168deg, transparent 70%, var(--color-dark-grad-secondary) 75%, var(--color-dark-grad-secondary) 78%, var(--color-dark-grad-primary) 96%)}}}body.t-dark :is(main){--bg-grad-anim-start-x:80%;--bg-grad-anim-start-y:0%;--bg-grad-anim-end-x:80%;--bg-grad-anim-end-y:80%;--bg-grad-anim-pulse-move:4%;--bg-grad-anim-x:var(--bg-grad-anim-start-x,0%);--bg-grad-anim-y:var(--bg-grad-anim-start-y,0%);background-position:var(--bg-grad-anim-x) var(--bg-grad-anim-y);color:var(--color-primary-inverted);background-color:var(--color-dark-bg);background-image:linear-gradient(168deg, transparent 80%, var(--color-dark-grad-secondary) 85%, var(--color-dark-grad-secondary) 88%, var(--color-dark-grad-primary) 96%);background-size:130% 130%;animation:8s cubic-bezier(.65,.43,.78,1.22) forwards bgPosFadeIn,14s linear 8s infinite bgGradPulse}@media (width>=920px){body.t-dark :is(main){background-image:linear-gradient(168deg, transparent 70%, var(--color-dark-grad-secondary) 75%, var(--color-dark-grad-secondary) 78%, var(--color-dark-grad-primary) 96%)}}footer,header{font-size:var(--text-1);letter-spacing:var(--tracking-3);text-transform:uppercase;flex-flow:row-reverse;justify-content:space-between;line-height:2.25em;display:flex;position:relative}@media (height>=600px){footer,header{font-size:1.5vh}}header{z-index:2;position:absolute;inset:-1lh 0 0}details{display:inline-block}summary{list-style:none;display:inline-block}summary::-webkit-details-marker{display:none}summary::marker{display:none}h1,h2{letter-spacing:var(--tracking-2);text-transform:uppercase;margin:0;font-size:1.625rem;font-weight:400}@media (height>=600px){h1,h2{font-size:5vh}}@media (orientation:landscape) and (width>=920px){h1,h2{font-size:6vh}}a{text-decoration:none}@media (prefers-color-scheme:dark){body:not(.t-light) :is(a){color:var(--color-primary-inverted)}}body.t-dark :is(a){color:var(--color-primary-inverted)}main a{color:var(--color-primary);text-transform:uppercase}main a:active,main a:hover{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}:is(main a:active,main a:hover) .icon{fill:url(#grad);stroke:url(#grad)}label{margin-bottom:calc(var(--leading-3) * -1em);text-transform:uppercase}@media (orientation:landscape) and (width>=1920px){label small{font-size:var(--text-3)}}input,textarea{margin-bottom:var(--spacing-5);width:100%;font:inherit;color:inherit;caret-color:var(--color-tertiary);background:0 0;border:0 solid;border-bottom-width:2px;padding:0;transition:background .15s ease-in-out;position:relative}@media (orientation:landscape) and (width>=920px){input,textarea{border-bottom-width:3px}}@media (orientation:landscape) and (width>=1920px){input,textarea{margin-bottom:var(--spacing-7);border-bottom-width:5px}}:is(input,textarea):focus{border-image:linear-gradient(to right, var(--color-tertiary) 25%, var(--color-secondary) 75%) 1;outline:none}:is(input,textarea):not(:placeholder-shown){background:var(--color-primary-inverted)}@media (prefers-color-scheme:dark){body:not(.t-light) :is(input,textarea):not(:placeholder-shown){background:var(--color-dark-bg)}}body.t-dark :is(input,textarea):not(:placeholder-shown){background:var(--color-dark-bg)}:-webkit-any(input,textarea):-webkit-autofill{background:var(--color-primary-inverted)}:is(input,textarea):autofill{background:var(--color-primary-inverted)}@media (orientation:landscape) and (width>=1920px){label,input,textarea{font-size:var(--text-6)}}textarea{resize:none}small{letter-spacing:var(--tracking-1);font-size:.5em}@media (orientation:landscape) and (width>=920px){small{letter-spacing:var(--tracking-3)}}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--color-tertiary);outline-offset:3px}.svg-sprite{position:absolute;top:-100%;left:-100%}.icon{vertical-align:middle;fill:currentColor;stroke:currentColor;width:1em;height:1em;display:inline-block}.topline{transform:translateY(20%)}.topline__item{vertical-align:top;position:relative;top:-.2em}.wrap-ellipsis{white-space:nowrap;text-overflow:ellipsis;margin:-4px;padding:4px;overflow:hidden}.wrap-ellipsis a:focus-visible{outline-offset:1px}}@layer components{.content{flex-flow:column;flex-grow:1;display:flex;position:relative}@media (orientation:landscape) and (width>=920px){.content{z-index:1;flex-flow:row-reverse;display:flex}}.mobile-nav-wrapper{z-index:2;flex-flow:column;display:flex;position:absolute;right:-5px}.logo-wrapper{flex-flow:column;flex-grow:1;height:72px;max-height:20vh;margin:auto 0;display:flex;position:relative;overflow:hidden}@media (orientation:landscape) and (width>=920px){.logo-wrapper{margin-top:calc(24.5vh - var(--spacing-6));padding:var(--spacing-3) 0;width:60%;height:45vh;max-height:none}}@media (orientation:landscape) and (width>=920px) and (height>=480px){.logo-wrapper{margin-top:calc(14.5vh - var(--spacing-3));max-height:none;padding:10vh 0}}@media (orientation:landscape) and (width>=920px){.contact-col{flex-flow:column;flex-grow:1;justify-content:space-evenly;display:flex}}.contact-col__cta{margin-top:-.2em;margin-left:var(--spacing-4);max-width:20ch;display:none}@media (width>=480px){.contact-col__cta{display:block}}.icon-logomark{stroke:none;width:100%;display:block}.icon-logomark path,.icon-logomark use{visibility:hidden}@media (prefers-reduced-motion:reduce){.icon-logomark path,.icon-logomark use{visibility:visible}}.icon-logomark--img{flex-grow:1;height:100%}.icon-logotype{box-sizing:border-box;width:1em;height:1em;color:var(--color-primary-inverted);border-radius:50%;font-size:112.5vw;line-height:.2;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (orientation:landscape){.icon-logotype{font-size:112.5vh}}@media (prefers-color-scheme:dark){body:not(.t-light) .icon-logotype{display:none}}body.t-dark .icon-logotype{display:none}.icon-logotype .icon{opacity:0;stroke:none;width:100%;height:100%;animation-name:rippleLogo,fadeIn;animation-duration:.8s,.4s;animation-timing-function:cubic-bezier(.65,.43,.67,1.53);animation-iteration-count:1,1;animation-direction:normal,normal;animation-play-state:running,running;animation-delay:.6s,.6s;animation-fill-mode:forwards,forwards;animation-timeline:auto,auto}.icon-logotype__circle{transform-origin:bottom;animation:2.5s ease-out .6s forwards rippleLogoInner}@media (prefers-reduced-motion:reduce){.icon-logotype__circle{animation:none}}.title-box{max-width:12rem}@media (height>=600px){.title-box{max-width:36vh}}@media (orientation:landscape) and (width>=920px){.title-box{max-width:45vh}}.grecaptcha-wrapper{display:none}.grecaptcha-wrapper+div{bottom:0!important;overflow:auto!important}.grecaptcha-wrapper+div>div:first-child{position:absolute!important}.fadeInUp{animation:.6s paused fadeInUp}.fadeInUp.in{animation-play-state:running}.intro-done .load-fadeinup{animation:none}.intro-done .icon-logomark path,.intro-done .icon-logomark use{visibility:visible}@media (prefers-reduced-motion:reduce){:not(symbol):not(circle):not(path){transition-duration:.001ms!important;animation-duration:.001ms!important}.fadeInUp{animation-play-state:running}}.btn{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin:0;padding:.5em}.btn.fill{background-color:var(--color-primary);color:var(--color-primary-inverted);-webkit-text-fill-color:initial}.btn.fill.active,.btn.fill:active,.btn.fill:hover,body.t-dark .btn.fill[data-theme=dark],body.t-light .btn.fill[data-theme=light],body:not(.t-dark):not(.t-light) .btn.fill[data-theme=auto]{background-image:linear-gradient(140deg, var(--color-tertiary) 25%, var(--color-secondary) 90%)}@media (prefers-color-scheme:dark){body:not(.t-light) .btn.fill{color:var(--color-primary);background:var(--color-primary-inverted);transition-property:color,background-color}body:not(.t-light) .btn.fill.active,body:not(.t-light) .btn.fill:active,body:not(.t-light) .btn.fill:hover{color:var(--color-primary-inverted);background:var(--color-dark-primary-inverted)}:is(body:not(.t-light) .btn.fill.active,body:not(.t-light) .btn.fill:active,body:not(.t-light) .btn.fill:hover) .icon{fill:currentColor;stroke:currentColor}}body.t-dark .btn.fill{color:var(--color-primary);background:var(--color-primary-inverted);transition-property:color,background-color}body.t-dark .btn.fill.active,body.t-dark .btn.fill:active,body.t-dark .btn.fill:hover{color:var(--color-primary-inverted);background:var(--color-dark-primary-inverted)}:is(body.t-dark .btn.fill.active,body.t-dark .btn.fill:active,body.t-dark .btn.fill:hover) .icon{fill:currentColor;stroke:currentColor}.btn.btn--outline{padding:0}.btn.btn--outline.active,.btn.btn--outline:active,.btn.btn--outline:hover,body.t-dark .btn.btn--outline[data-theme=dark],body.t-light .btn.btn--outline[data-theme=light],body:not(.t-dark):not(.t-light) .btn.btn--outline[data-theme=auto]{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}:is(.btn.btn--outline.active,.btn.btn--outline:active,.btn.btn--outline:hover,body.t-dark .btn.btn--outline[data-theme=dark],body.t-light .btn.btn--outline[data-theme=light],body:not(.t-dark):not(.t-light) .btn.btn--outline[data-theme=auto]) .icon{fill:url(#grad);stroke:url(#grad)}@media (prefers-color-scheme:dark){body:not(.t-light) .btn.btn--outline{color:inherit;background:0 0;transition:color .2s ease-in-out}body:not(.t-light) .btn.btn--outline.active,body:not(.t-light) .btn.btn--outline:active,body:not(.t-light) .btn.btn--outline:hover{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}}body.t-dark .btn.btn--outline{color:inherit;background:0 0;transition:color .2s ease-in-out}body.t-dark .btn.btn--outline.active,body.t-dark .btn.btn--outline:active,body.t-dark .btn.btn--outline:hover{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.btn.text{color:inherit;background:0 0;padding:0 .5em;display:inline-block}.btn.text.active,.btn.text:active,.btn.text:hover,body.t-dark .btn.text[data-theme=dark],body.t-light .btn.text[data-theme=light],body:not(.t-dark):not(.t-light) .btn.text[data-theme=auto]{background:0 0;text-decoration:underline}.btn:disabled{opacity:.4;filter:saturate(.2);pointer-events:none;animation:3s ease-in-out infinite loadingPulse}.btn--big{font-size:var(--text-6)}@media (orientation:landscape) and (width>=920px){.btn--big .icon{font-size:var(--text-7)}}body:not(.x) .btn.fill.btn--work{color:#fff;background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 25%, var(--color-secondary) 90%);-webkit-text-fill-color:#fff;text-align:center;background-position:0 0;background-size:160% 160%;-webkit-background-clip:border-box;background-clip:border-box;text-decoration:none;transition:background-position .4s}body:not(.x) .btn.fill.btn--work:active,body:not(.x) .btn.fill.btn--work:hover,body:not(.x) .btn.fill.btn--work:focus-visible{color:#fff;-webkit-text-fill-color:#fff;background-color:var(--color-secondary);background-position:100% 100%;-webkit-background-clip:border-box;background-clip:border-box}@media (prefers-reduced-motion:no-preference){.nav-work:after{content:"";background:var(--color-tertiary);width:.6em;height:.6em;margin-left:.6em;animation:2s ease-out infinite navPing;display:inline-block}}dialog{z-index:1;top:var(--spacing-1);right:0;bottom:calc(var(--spacing-2) * -1);width:auto;height:auto;font:inherit;color:inherit;pointer-events:none;opacity:0;visibility:hidden;background:0 0;border:0;flex-flow:column;margin:0;padding:0;transition:opacity .2s ease-in-out,visibility 0s .2s;display:flex;position:absolute;left:0;overflow:visible}@media (orientation:landscape) and (width>=920px){dialog{width:31.3vw;max-width:800px;inset:7vh auto 7vh -1px}}dialog[open]{pointer-events:all;opacity:1;visibility:visible;transition-delay:0s}dialog[open]~.work,dialog[open]~.contact-col{opacity:.2;pointer-events:none}dialog:before{content:"";z-index:-1;background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 40%, var(--color-secondary) 99%);filter:blur(2vh);display:block;position:absolute;inset:4vh -2vh -2vh 4vh}@media (orientation:landscape){dialog:before{filter:blur(2.5vw);inset:3.4vw -1.5vw -1.5vw 3.4vw}}.dialog__body{background:var(--color-primary-inverted);padding:calc(var(--spacing-1) + var(--spacing-6)) var(--spacing-4) var(--spacing-4);flex-grow:1}@media (orientation:landscape) and (width>=920px){.dialog__body{padding-bottom:var(--spacing-6)}}@media (orientation:landscape) and (width>=1920px){.dialog__body{padding:calc(var(--spacing-7) + var(--spacing-3)) var(--spacing-7) calc(var(--spacing-7) + var(--spacing-1))}}@media (prefers-color-scheme:dark){body:not(.t-light) .dialog__body{background:var(--color-dark-bg)}}body.t-dark .dialog__body{background:var(--color-dark-bg)}.dialog__btn-close{font-size:30px;position:absolute;transform:translate(-50%,-50%)rotate(180deg)}body.work-page{--muted:#4a566e;--line:#07163340;--win-bg:#fff;--win-line:#07163333;--focus:var(--color-secondary)}@media (prefers-color-scheme:dark){body.work-page:not(.t-light){--muted:#a9b4cc;--line:#ffffff4d;--win-bg:#071633;--win-line:#ffffff4d;--focus:var(--color-tertiary)}}body.work-page.t-dark{--muted:#a9b4cc;--line:#ffffff4d;--win-bg:#071633;--win-line:#ffffff4d;--focus:var(--color-tertiary)}body.work-page :focus-visible{outline:2px solid var(--focus);outline-offset:3px}body.work-page .btn.fill:focus-visible{outline-offset:2px}.skip-link{z-index:200;color:var(--color-primary-inverted);background:var(--color-primary);padding:.4em .8em;position:absolute;top:0;left:0;transform:translateY(-120%)}.skip-link:focus{transform:none}.work-nav{flex-grow:1;justify-content:space-between;align-items:center;display:flex}.btn--top{padding:0 1em}.btn--top.btn.fill{color:var(--color-primary);background:var(--color-primary-inverted);transition-property:color,background-color}.btn--top.btn.fill.active,.btn--top.btn.fill:active,.btn--top.btn.fill:hover{color:var(--color-primary-inverted);background:var(--color-dark-primary-inverted)}.work{width:100%;max-width:50rem;padding-top:var(--spacing-3);flex-grow:1;margin:0 auto;font-size:.62em;transition:opacity .3s ease-out}@media (orientation:landscape) and (width>=920px){.work{font-size:.8em}}.work__head{margin-bottom:var(--spacing-4);padding-right:3.2rem;font-size:1.6em}.work__lead{max-width:38ch;color:var(--muted);margin:0;font-size:.75em;line-height:1.5}.work__count{text-transform:uppercase;color:var(--muted);margin:0;font-size:.6em;display:none}.work__outro{margin-top:var(--spacing-6);display:flex}.projects{border-top:1px solid var(--line)}.project{border-bottom:1px solid var(--line)}.project summary{cursor:pointer;grid-template-columns:2em minmax(0,1fr) auto 1.4em;align-items:center;gap:.8em;padding:1.8em 0;display:grid}.project details{interpolate-size:allow-keywords;display:block}.project details::details-content{block-size:0;transition:block-size .4s cubic-bezier(.2, .8, .2, 1), content-visibility .4s allow-discrete;overflow:clip}.project details[open]::details-content{block-size:auto}.project details[open] .project__chev{transform:rotate(45deg)}.project details[open] .project__name{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.project__n,.project__year{color:var(--muted);font-size:.7em}.project__name{letter-spacing:var(--tracking-3);overflow-wrap:anywhere;font-size:1.2em;line-height:1.2}.project__chev{align-self:center;width:.8em;height:.8em;transition:transform .35s;position:relative}.project__chev:before,.project__chev:after{content:"";background:currentColor;position:absolute}.project__chev:before{height:2px;top:calc(50% - 1px);left:0;right:0}.project__chev:after{width:2px;top:0;bottom:0;left:calc(50% - 1px)}.project__body{gap:1.2em;padding-bottom:1.2em;display:grid}.project__url{overflow-wrap:anywhere;flex-wrap:wrap;gap:.2em 1.2em;margin:0;display:flex}.project__stack{text-transform:uppercase;flex-wrap:wrap;gap:.2em 1em;font-size:.85em;display:flex}.project__stack li:before{content:"#";color:var(--color-tertiary);margin-right:.15em}.project__desc,.project__note{text-transform:none;margin:0;line-height:1.55}.project__desc{max-width:56ch;color:var(--muted)}.project__note{border-left:3px solid var(--color-tertiary);max-width:56ch;padding-left:.7em}.project__cta{text-align:center;box-sizing:border-box;justify-self:start;width:100%;margin:1em 0;font-size:1.2em}@media screen and (width>=600px){.project__cta{font-size:1.3em}}@media screen and (width>=1440px){.project__cta{font-size:1.4em}}.window{background:var(--win-bg);outline:1px solid var(--win-line);margin:0}.window__chrome{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:6px;padding:8px 10px;font-size:.7em;display:flex}.window__chrome i{background:var(--color-tertiary);flex:none;width:7px;height:7px}.window__chrome i:nth-child(2){background:var(--color-dark-grad-primary)}.window__chrome i:nth-child(3){background:var(--color-secondary)}.window__chrome span{text-overflow:ellipsis;white-space:nowrap;margin-left:8px;overflow:hidden}.window__fallback{aspect-ratio:16/10;text-align:center;text-transform:uppercase;color:#fff;background:linear-gradient(140deg, var(--color-tertiary) 25%, var(--color-secondary) 95%);place-items:center;padding:1em;display:grid}.window img,.win img{aspect-ratio:16/10;object-fit:cover;object-position:top;width:100%;height:auto;display:block}@media (orientation:portrait),(width<=919px){.work-page dialog{position:fixed;inset:50px 35px 20px}}.deck,.deck-nav{display:none}@media (orientation:landscape) and (width>=920px){html.js .content.deck-used .project.is-active{animation:.5s cubic-bezier(.2,.8,.2,1) fadeInUp}html.js .deck{display:block}html.js .deck-nav{display:flex}html.js .content{justify-content:space-between;align-items:center;min-height:0}html.js .content .work{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-3);flex-flow:column;flex:0 0 35%;width:auto;min-width:0;max-width:none;margin:5% 0 0;padding-top:0;padding-bottom:1vh;font-size:1em;display:flex}html.js .content .work__head{margin:0;padding-right:0;font-size:1em}html.js .content .work__count{margin-top:var(--spacing-3);display:block}html.js .content .work__lead,html.js .content .work__outro{display:none}html.js .content .projects,html.js .content .project{border:0}html.js .content .project:not(.is-active){display:none}html.js .content .project summary{cursor:default;pointer-events:none;justify-content:space-between;align-items:baseline;padding:0 0 .6em;display:flex}html.js .content .project .window{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}html.js .content .project details::details-content{content-visibility:visible;transition:none}html.js .content .project__n,html.js .content .project__chev{display:none}html.js .content .project__name{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1em}html.js .content .project__body{gap:1em;padding-bottom:0;font-size:max(.6em,.9rem)}html.js .content .project__desc,html.js .content .project__note{max-width:none}}.deck{aspect-ratio:16/12.6;--spread:1;flex:0 0 56%;align-self:center;position:relative}.deck:hover{--spread:1.55}.deck .win{--pc:min(var(--p), 4);width:66%;font:inherit;text-align:left;color:inherit;background:var(--win-bg);outline:1px solid var(--win-line);cursor:pointer;transform:translate(calc(var(--pc) * 6.5% * var(--spread)), calc(var(--pc) * -8% * var(--spread))) scale(calc(1 - var(--pc) * .04));z-index:calc(10 - var(--pc));filter:brightness(calc(1 - var(--pc) * .07));border:0;margin:0;padding:0;transition:transform .7s cubic-bezier(.2,.9,.25,1.1),filter .4s,opacity .4s;position:absolute;top:24%;left:0}.deck .win[data-far]{opacity:0;pointer-events:none}.deck .win:after{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 40%, var(--color-secondary) 99%);--deck-win-bg-opacity-divider:1.5;content:"";z-index:-1;filter:blur(2vh);mix-blend-mode:hard-light;opacity:calc((var(--p) + .5) / var(--deck-win-bg-opacity-divider));transition:opacity .2s ease-out;position:absolute;inset:50px -5px -5px 50px}@media (orientation:landscape){.deck .win:after{filter:blur(2.5vw)}}@media (prefers-color-scheme:dark){body:not(.t-light) :is(.deck .win):after{--deck-win-bg-opacity-divider:8;--bg-grad-anim-start-x:0%;--bg-grad-anim-start-y:0%;--bg-grad-anim-end-x:80%;--bg-grad-anim-end-y:80%;--bg-grad-anim-pulse-move:20%;--bg-grad-anim-x:var(--bg-grad-anim-start-x,0%);--bg-grad-anim-y:var(--bg-grad-anim-start-y,0%);background-position:var(--bg-grad-anim-x) var(--bg-grad-anim-y);z-index:10;background-color:var(--color-dark-bg);background-image:linear-gradient(168deg, var(--color-dark-bg) 40%, var(--color-dark-grad-secondary) 70%, var(--color-dark-grad-primary) 130%);background-size:200% 200%;animation:8s cubic-bezier(.65,.43,.78,1.22) forwards bgPosFadeIn,14s linear 8s infinite bgGradPulse;inset:0;filter:blur()!important}}body.t-dark :is(.deck .win):after{--deck-win-bg-opacity-divider:8;--bg-grad-anim-start-x:0%;--bg-grad-anim-start-y:0%;--bg-grad-anim-end-x:80%;--bg-grad-anim-end-y:80%;--bg-grad-anim-pulse-move:20%;--bg-grad-anim-x:var(--bg-grad-anim-start-x,0%);--bg-grad-anim-y:var(--bg-grad-anim-start-y,0%);background-position:var(--bg-grad-anim-x) var(--bg-grad-anim-y);z-index:10;background-color:var(--color-dark-bg);background-image:linear-gradient(168deg, var(--color-dark-bg) 40%, var(--color-dark-grad-secondary) 70%, var(--color-dark-grad-primary) 130%);background-size:200% 200%;animation:8s cubic-bezier(.65,.43,.78,1.22) forwards bgPosFadeIn,14s linear 8s infinite bgGradPulse;inset:0;filter:blur()!important}.deck-nav{align-items:center;gap:1.2em;margin-bottom:1em;font-size:.6em}.deck-nav__dots{flex:1;gap:6px;display:flex}.deck-nav__dot{cursor:pointer;background:0 0;border:0;flex:1;max-width:46px;height:24px;margin:0;padding:0;position:relative}.deck-nav__dot:after{content:"";background:var(--line);height:3px;transition:background .3s;position:absolute;top:11px;left:0;right:0}.deck-nav__dot[aria-current=true]:after{background:linear-gradient(90deg, var(--color-tertiary), var(--color-secondary))}html.glitch-in .work__head>*,html.glitch-in .deck .win,html.glitch-in .project{animation:.8s step-end backwards glitchIn}@media not all and (orientation:landscape) and (width>=920px){html.glitch-in .project{animation-delay:50ms}}@media (prefers-reduced-motion:reduce){html.glitch-in .work__head>*,html.glitch-in .deck .win,html.glitch-in .project{animation:none}}:root{--veil-bg:#efefef}@media (prefers-color-scheme:dark){body:not(.t-light){--veil-bg:var(--color-dark-bg)}}body.t-dark{--veil-bg:var(--color-dark-bg)}html.glitch-cover{background:var(--veil-bg)}html.glitch-cover body{visibility:hidden}.veil{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.veil__band{position:absolute;left:0;right:0}.veil__fringe,.veil__fill{position:absolute;inset:0}.veil__fringe--coral{background:var(--color-tertiary)}.veil__fringe--teal{background:var(--color-dark-grad-primary)}.veil__fill{background:var(--veil-bg)}.veil__fill--grad{background:linear-gradient(140deg, var(--color-tertiary) 20%, var(--color-dark-primary-inverted) 100%)}@keyframes glitchIn{0%{opacity:0;translate:-14px}25%{opacity:1;filter:drop-shadow(5px 0 0 var(--color-tertiary)) drop-shadow(-5px 0 0 var(--color-dark-grad-primary));translate:12px}50%{clip-path:inset(0 0 55%);filter:none;translate:-6px}75%{clip-path:inset(0);filter:drop-shadow(3px 0 0 var(--color-dark-grad-primary));translate:3px}to{opacity:1;clip-path:inset(0);filter:none;translate:0}}@media (prefers-reduced-motion:reduce){html.glitch-cover body{visibility:visible}}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.static{position:static}.container{width:100%}@media (width>=480px){.container{max-width:480px}}@media (width>=920px){.container{max-width:920px}}@media (width>=1440px){.container{max-width:1440px}}@media (width>=1920px){.container{max-width:1920px}}.mt-1{margin-top:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.mb-7{margin-bottom:var(--spacing-7)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.h-full{height:100%}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.grad-text{background-color:var(--color-secondary);background-image:linear-gradient(140deg, var(--color-tertiary) 35%, var(--color-secondary) 80%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.text-center{text-align:center}.leading-none{--tw-leading:1;line-height:1}.whitespace-nowrap{white-space:nowrap}.uppercase{text-transform:uppercase}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}@media (width>=920px){.md\:not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.md\:block{display:block}.md\:hidden{display:none}.md\:w-3\/5{width:60%}.md\:grow-0{flex-grow:0}}}@keyframes canvasSteppedShake{0%{transform:translate(.5%)}10%{transform:translate(-.5%)}20%{transform:translate(1.5%,1%)}30%{transform:translate(-.25%)}40%{transform:translate(1.5%,.1%)}50%{transform:translate(.25%)}60%{transform:translate(.5%,-.4%)}70%{transform:translate(-1.5%,.5%)}80%{transform:translate(-.25%,-.25%)}90%{transform:translate(-.55%,.1%)}to{transform:translate(.25%,-.6%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(25%)}to{opacity:1;transform:translate(0)}}@keyframes rippleLogo{0%{transform:scale(.6)}40%{transform:scale(1.09)}to{transform:none}}@keyframes rippleLogoInner{0%{transform:scale(.4)}10%{transform:none}34%{transform:scale(.93)}45%{transform:none}56%{transform:scale(.98)}67%{transform:none}78%{transform:scale(.99)}to{opacity:1;transform:none}}@keyframes loadingPulse{30%{filter:saturate(.2)brightness(5)}85%{filter:saturate(.2)brightness(5)}}@property --bg-grad-anim-initial{syntax:"<percentage>";inherits:true;initial-value:80%}@property --bg-grad-anim-y{syntax:"<percentage>";inherits:true;initial-value:80%}@property --bg-grad-anim-x{syntax:"<percentage>";inherits:true;initial-value:80%}@keyframes bgPosFadeIn{to{--bg-grad-anim-x:var(---bg-grad-anim-end-x);--bg-grad-anim-y:var(---bg-grad-anim-end-y)}}@keyframes bgGradPulse{25%{--bg-grad-anim-x:var(--bg-grad-anim-end-x);--bg-grad-anim-y:var(--bg-grad-anim-end-y,--bg-grad-anim-x)}40%{--bg-grad-anim-x:calc(var(--bg-grad-anim-end-x) - var(--bg-grad-anim-pulse-move));--bg-grad-anim-y:calc(var(--bg-grad-anim-end-x) - var(--bg-grad-anim-pulse-move))}50%{--bg-grad-anim-x:var(--bg-grad-anim-end-x);--bg-grad-anim-y:var(--bg-grad-anim-end-y,--bg-grad-anim-x)}96%{--bg-grad-anim-x:var(--bg-grad-anim-end-x);--bg-grad-anim-y:var(--bg-grad-anim-end-y,--bg-grad-anim-x)}98%{--bg-grad-anim-x:calc(var(--bg-grad-anim-end-x) + var(--bg-grad-anim-pulse-move));--bg-grad-anim-y:calc(var(--bg-grad-anim-end-x) + var(--bg-grad-anim-pulse-move))}to{--bg-grad-anim-x:var(--bg-grad-anim-end-x);--bg-grad-anim-y:var(--bg-grad-anim-end-y,--bg-grad-anim-x)}}@keyframes navPing{0%{box-shadow:0 0 #ff5f49b3}to{box-shadow:0 0 0 .9em #ff5f4900}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}
