@font-face{font-family:Overused Grotesk;src:url(../fonts/OverusedGroteskRoman-VF.ttf)format("truetype-variations");font-style:normal;font-weight:100 900;font-display:swap}:root{--page-padding:1.5rem;--grid-gap:.5rem;--grid-columns:12;--page-background:#fefefd;--page-foreground:#0f0f0f;--project-meta-color:#666;--difference-foreground:#efefee;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;letter-spacing:-.04em;font-family:Overused Grotesk,sans-serif;font-size:14px;font-weight:550}:root[data-theme=dark]{--page-background:#1d1d1d;--page-foreground:#d02437;--project-meta-color:var(--page-foreground);--difference-foreground:#ed4154;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .app-nav{color:var(--page-foreground);mix-blend-mode:normal}*{box-sizing:border-box}body,html{background-color:var(--page-background);margin:0}h1{font-weight:550}body{color:var(--page-foreground);transition:background-color .3s,color .3s}body,button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}img{transition:filter .3s}:root[data-theme=dark] img{filter:grayscale()}main{min-height:200svh;padding-top:clamp(8rem,10vw,12rem)}.site-grid{grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));gap:var(--grid-gap);padding-inline:var(--page-padding);display:grid}.site-grid>*{grid-column:span 6;margin-block:0}@media (width<=900px){:root{--grid-columns:6}.site-grid>*{grid-column:span 3}}@media (width<=600px){:root{--grid-columns:4}.site-grid>*{grid-column:1/-1}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent-horizontal],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}.site-preloader[data-v-b8c19c75]{--preloader-padding:1.5rem;--preloader-title-size:clamp(3rem,8vw,9rem);z-index:10000;box-sizing:border-box;padding:var(--preloader-padding);background:var(--page-foreground);color:var(--page-background);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);will-change:clip-path;isolation:isolate;position:fixed;inset:0;overflow:hidden;transform:translateZ(0)}.site-preloader__images[data-v-b8c19c75]{z-index:1;pointer-events:none;position:absolute;inset:0}.site-preloader__image[data-v-b8c19c75]{left:50%;bottom:calc(50% - var(--preloader-title-size)*.5 + 1.5rem);aspect-ratio:4/5;clip-path:polygon(20% 20%,80% 20%,80% 80%,20% 80%);transform-origin:50%;will-change:transform,clip-path;width:min(25rem,62vw,32svh);position:absolute;overflow:hidden;transform:translate(-50%)scale(0)}.site-preloader__image img[data-v-b8c19c75]{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.site-preloader__content[data-v-b8c19c75]{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.site-preloader__title-row[data-v-b8c19c75]{width:max-content;max-width:calc(100% - var(--preloader-padding)*2);position:relative}.site-preloader__title[data-v-b8c19c75]{z-index:2;color:var(--difference-foreground);font-size:var(--preloader-title-size);letter-spacing:-.04em;white-space:nowrap;mix-blend-mode:difference;margin:0 0 -.12em;padding-bottom:.12em;font-weight:550}.site-preloader__portfolio[data-v-b8c19c75],.site-preloader__title[data-v-b8c19c75]{visibility:hidden;will-change:transform,opacity;line-height:1;position:relative;overflow:hidden}.site-preloader__portfolio[data-v-b8c19c75]{z-index:3;margin:1.8rem 0 0;padding-right:.35em}.site-preloader__counter[data-v-b8c19c75]{font-variant-numeric:tabular-nums;line-height:1;position:absolute;top:-1.5rem;left:calc(100% + 1.5rem);overflow:hidden}.site-preloader__counter>span[data-v-b8c19c75]{visibility:hidden;will-change:transform,opacity;display:block}.site-preloader__progress[data-v-b8c19c75]{z-index:4;height:.5rem;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.site-preloader__progress>span[data-v-b8c19c75]{background:var(--page-background);transform-origin:0;will-change:transform;width:100%;height:100%;display:block;transform:scaleX(0)}[data-v-b8c19c75] .preloader-char,[data-v-b8c19c75] .preloader-portfolio-char{will-change:transform,opacity}html.is-preloading body,html.is-preloading{overflow:hidden}@media (width<=768px){.site-preloader[data-v-b8c19c75]{--preloader-title-size:clamp(2.5rem,11vw,5rem)}.site-preloader__image[data-v-b8c19c75]{width:min(17.6rem,57.6vw);top:40%;bottom:auto;transform:translate(-50%,-50%)scale(0)}.site-preloader__portfolio[data-v-b8c19c75]{color:#fff;mix-blend-mode:difference;margin-top:.75rem}.site-preloader__counter[data-v-b8c19c75]{left:calc(100% + .5rem)}}.app-nav[data-v-e816eccf]{z-index:1000;top:var(--page-padding);right:var(--page-padding);left:var(--page-padding);height:7rem;color:var(--difference-foreground);mix-blend-mode:difference;pointer-events:none;line-height:1;position:fixed}.app-nav[data-v-e816eccf] a{color:inherit}.name-layer[data-v-e816eccf],.nav-details[data-v-e816eccf]{position:absolute;inset:0}.mobile-menu-toggle[data-v-e816eccf]{display:none}.name-layer[data-v-e816eccf]{--name-size:clamp(1.4rem,3.2vw,7rem);-moz-column-gap:5rem;width:100%;font-size:var(--name-size);letter-spacing:-.04em;white-space:nowrap;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:flex-start;column-gap:5rem;font-weight:550;line-height:.85;transition:font-size .8s cubic-bezier(.8,0,.2,1);display:grid}.name-home-link[data-v-e816eccf]{pointer-events:none;display:contents}.is-compact .name-home-link[data-v-e816eccf],.is-initials .name-home-link[data-v-e816eccf]{pointer-events:auto;cursor:pointer}.name-home-link:focus-visible .name-piece[data-v-e816eccf]{outline-offset:.2rem;outline:2px solid}.app-nav:not(.is-ready) .name-layer[data-v-e816eccf]{visibility:hidden}.name-piece[data-v-e816eccf]{align-items:flex-start;min-width:0;display:inline-flex}.name-piece--first[data-v-e816eccf]{justify-self:start}.name-piece--ryan[data-v-e816eccf]{justify-self:center}.name-piece--last[data-v-e816eccf]{justify-self:end}.name-char-clip[data-v-e816eccf]{vertical-align:top;height:1em;margin-inline:-.06em;padding-inline:.06em;display:inline-block;overflow:hidden}.name-reveal-char[data-v-e816eccf]{will-change:transform;display:inline-block}.is-compact .name-layer[data-v-e816eccf]{--name-size:1.5rem;font-weight:550}@media (width<=874.99px){.name-layer[data-v-e816eccf]{font-weight:550}}.nav-details[data-v-e816eccf]{align-items:start;gap:var(--grid-gap);visibility:hidden;grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.has-details .nav-details[data-v-e816eccf]{visibility:visible}.has-details .contact button[data-v-e816eccf],.has-details .nav-details a[data-v-e816eccf],.has-details .theme-toggle[data-v-e816eccf]{pointer-events:auto}.detail-line[data-v-e816eccf]{margin-block:-.06em;padding-block:.06em;display:block;overflow:hidden}.detail-line-inner[data-v-e816eccf]{will-change:transform;display:block}.portfolio-version[data-v-e816eccf]{grid-column:2/span 1}.availability[data-v-e816eccf]{grid-column:3/span 2}.status[data-v-e816eccf]{grid-column:5/span 2}.nav-details nav[data-v-e816eccf]{grid-column:8/span 1}.language-links[data-v-e816eccf]{grid-column:9/span 1}.theme-switcher[data-v-e816eccf]{grid-column:10/span 1;justify-self:start}.contact[data-v-e816eccf]{grid-column:11/span 1}.theme-toggle[data-v-e816eccf]{border:0;place-items:center;width:1.5rem;height:1.5rem;padding:0;display:grid}.contact button[data-v-e816eccf],.theme-toggle[data-v-e816eccf]{color:inherit;cursor:pointer;background:0 0}.contact button[data-v-e816eccf]{appearance:none;text-align:left;font:inherit;line-height:inherit;letter-spacing:inherit;border:0;padding:0}.language-links[data-v-e816eccf],.nav-links[data-v-e816eccf]{flex-direction:column;gap:.5rem;display:flex}.nav-links[data-v-e816eccf]{margin:0;padding:0;list-style:none}@media (width<=900px){.name-layer[data-v-e816eccf]{--name-size:clamp(1.4rem,3.2vw,2.8rem)}.is-compact .name-layer[data-v-e816eccf]{--name-size:1.5rem}.nav-details[data-v-e816eccf]{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:1rem}.portfolio-version[data-v-e816eccf]{grid-column:2/span 1}.availability[data-v-e816eccf]{grid-column:3/span 2}.status[data-v-e816eccf]{grid-column:5/span 2}.nav-details nav[data-v-e816eccf]{grid-column:2/span 1}.language-links[data-v-e816eccf]{grid-column:3/span 1}.theme-switcher[data-v-e816eccf]{grid-column:4/span 1}.contact[data-v-e816eccf]{grid-column:5/span 2}.app-nav.is-projects-route[data-v-e816eccf]{height:4rem}.is-projects-route .name-layer[data-v-e816eccf]{--name-size:2rem;-moz-column-gap:var(--grid-gap);column-gap:var(--grid-gap);transition:none}.is-projects-route.is-compact .name-layer[data-v-e816eccf]{width:calc(25% - var(--grid-gap)*3/4);-moz-column-gap:0;column-gap:0}.is-projects-route .nav-details[data-v-e816eccf]{display:none}.is-projects-route .mobile-menu-toggle[data-v-e816eccf]{visibility:hidden;width:5rem;height:1.5rem;color:inherit;cursor:pointer;pointer-events:none;letter-spacing:-.04em;white-space:nowrap;background:0 0;border:0;padding:0;font-size:1.5rem;font-weight:550;line-height:.85;display:block;position:absolute;top:0;right:0}.is-projects-route.is-compact .mobile-menu-toggle[data-v-e816eccf]{pointer-events:auto}.is-projects-route .mobile-menu-word[data-v-e816eccf]{text-align:right;display:block;position:absolute;inset:0;overflow:hidden}.is-projects-route .mobile-menu-word>span[data-v-e816eccf]{display:block}.is-projects-route .mobile-menu-toggle[data-v-e816eccf] .mobile-menu-char{will-change:transform;display:inline-block}}@media (width<=600px){.app-nav[data-v-e816eccf]{height:4rem}.name-layer[data-v-e816eccf]{--name-size:2rem;-moz-column-gap:var(--grid-gap);column-gap:var(--grid-gap);transition:none}.is-compact .name-layer[data-v-e816eccf]{--name-size:2rem;width:calc(25% - var(--grid-gap)*3/4);-moz-column-gap:0;column-gap:0}.nav-details[data-v-e816eccf]{display:none}.mobile-menu-toggle[data-v-e816eccf]{visibility:hidden;width:5rem;height:1.5rem;color:inherit;cursor:pointer;pointer-events:none;letter-spacing:-.04em;white-space:nowrap;background:0 0;border:0;padding:0;font-size:1.5rem;font-weight:550;line-height:.85;display:block;position:absolute;top:0;right:0}.is-compact .mobile-menu-toggle[data-v-e816eccf]{pointer-events:auto}.mobile-menu-word[data-v-e816eccf]{text-align:right;display:block;position:absolute;inset:0;overflow:hidden}.mobile-menu-word>span[data-v-e816eccf]{display:block}.mobile-menu-toggle[data-v-e816eccf] .mobile-menu-char{will-change:transform;display:inline-block}}.mobile-menu[data-v-d80d2a82]{z-index:900;gap:var(--grid-gap);min-height:100svh;padding:var(--page-padding);background:var(--page-background);color:var(--page-foreground);visibility:hidden;will-change:transform;grid-template-columns:repeat(4,minmax(0,1fr));display:none;position:fixed;inset:0;overflow:clip}.mobile-menu__meta[data-v-d80d2a82],.mobile-menu__settings[data-v-d80d2a82]{flex-direction:column;gap:.5rem;font-size:1rem;line-height:.88;display:flex}.mobile-menu__meta[data-v-d80d2a82]{top:4.5rem;left:var(--page-padding);color:var(--project-meta-color);position:absolute}.mobile-menu__navigation[data-v-d80d2a82]{top:50%;left:calc(var(--page-padding) + 50vw - var(--page-padding)*2/4*2 - var(--grid-gap)*3/4*2 + var(--grid-gap)*2);flex-direction:column;gap:2rem;display:flex;position:absolute}.mobile-menu__label[data-v-d80d2a82]{color:var(--project-meta-color);font-size:1rem;line-height:.88}.mobile-menu__links[data-v-d80d2a82]{flex-direction:column;gap:2rem;margin:0;padding:0;font-size:1.5rem;line-height:.88;list-style:none;display:flex}.mobile-menu__settings[data-v-d80d2a82]{position:absolute;bottom:7.5rem}.mobile-menu__settings--language[data-v-d80d2a82]{left:var(--page-padding)}.mobile-menu__settings--theme[data-v-d80d2a82]{left:calc(var(--page-padding) + 50vw - var(--page-padding)*2/4*2 - var(--grid-gap)*3/4*2 + var(--grid-gap)*2)}.mobile-menu__settings button[data-v-d80d2a82]{appearance:none;width:fit-content;color:inherit;text-align:left;cursor:pointer;font:inherit;letter-spacing:inherit;background:0 0;border:0;padding:0}.mobile-menu__settings .is-current[data-v-d80d2a82]{color:var(--page-foreground)}@media (width<=600px){.mobile-menu[data-v-d80d2a82]{display:grid}}@media (width>=600.01px) and (width<=900px){.mobile-menu.is-projects-route[data-v-d80d2a82]{display:grid}}.grid-overlay[data-v-85111a77]{box-sizing:border-box;grid-template-columns:repeat(var(--grid-columns),minmax(0,1fr));gap:var(--grid-gap);width:100vw;height:100svh;padding-inline:var(--page-padding);pointer-events:none;z-index:9999;display:grid;position:fixed;top:0;left:0;overflow:hidden}.grid-column[data-v-85111a77]{background:color-mix(in srgb,var(--page-foreground) 10%,transparent);height:100%;transition:transform .55s cubic-bezier(.77,0,.18,1);transition-delay:calc(var(--reverse-index)*45ms);will-change:transform;transform:translateY(105%)}.grid-overlay.is-visible .grid-column[data-v-85111a77]{transition-delay:calc(var(--column-index)*45ms);transform:translateY(0)}.page-stage{visibility:hidden;pointer-events:none;position:relative}.page-stage.is-exiting,.page-stage.is-ready{visibility:visible}.page-stage.is-ready{pointer-events:auto}.error-page[data-v-49ff1952]{min-height:100svh;padding:var(--page-padding);background:var(--page-background);color:var(--page-foreground);text-align:center;place-content:center;gap:1.5rem;display:grid}.error-page h1[data-v-49ff1952],.error-page p[data-v-49ff1952]{margin:0;font-size:1.5rem;font-weight:550;line-height:1}.error-page p[data-v-49ff1952]{color:var(--project-meta-color);font-size:.85rem}.error-page button[data-v-49ff1952]{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.85rem;font-weight:550}.error-page button[data-v-49ff1952]:focus-visible,.error-page button[data-v-49ff1952]:hover{text-underline-offset:.2em;text-decoration:underline}
