@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-cyrillic-ext-400-normal.3vm4r-qr3_yee.woff2)format("woff2"),url(../media/inter-cyrillic-ext-400-normal.2e4vdgi7dy-n4.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-cyrillic-400-normal.1nwx-p2ngx2yg.woff2)format("woff2"),url(../media/inter-cyrillic-400-normal.2jms6gqb5gbhf.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-greek-ext-400-normal.2gr4b827yb2_q.woff2)format("woff2"),url(../media/inter-greek-ext-400-normal.38g6916w0wpxs.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-greek-400-normal.402ep76-j03q8.woff2)format("woff2"),url(../media/inter-greek-400-normal.2x8hqgpakc599.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-vietnamese-400-normal.1sl-kw9vnef9y.woff2)format("woff2"),url(../media/inter-vietnamese-400-normal.3206qgbkgsfc6.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-ext-400-normal.1aowtwjb6jex7.woff2)format("woff2"),url(../media/inter-latin-ext-400-normal.0zt1v0rj9tqox.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-400-normal.2qdljeg3s-lsl.woff2)format("woff2"),url(../media/inter-latin-400-normal.102grxki9ek3x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-cyrillic-ext-600-normal.341-hvs74ljp4.woff2)format("woff2"),url(../media/inter-cyrillic-ext-600-normal.1of5i9-_e5ga4.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-cyrillic-600-normal.0tppy39gl-lzn.woff2)format("woff2"),url(../media/inter-cyrillic-600-normal.3jalm3505289h.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-greek-ext-600-normal.20m9kgz843wth.woff2)format("woff2"),url(../media/inter-greek-ext-600-normal.3vzrk1-4zat7v.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-greek-600-normal.2ove9n9b8_3hb.woff2)format("woff2"),url(../media/inter-greek-600-normal.3aakp9m92tg2m.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-vietnamese-600-normal.0m_wd36g8rw-r.woff2)format("woff2"),url(../media/inter-vietnamese-600-normal.0dwa77f5pp57q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-latin-ext-600-normal.1zn8rwi8y9u6i.woff2)format("woff2"),url(../media/inter-latin-ext-600-normal.1pfmybho54-ry.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-latin-600-normal.2dov6rjg62vru.woff2)format("woff2"),url(../media/inter-latin-600-normal.2mum3nstrlzrd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-cyrillic-ext-800-normal.2i8lll1ab60kw.woff2)format("woff2"),url(../media/inter-cyrillic-ext-800-normal.36coln61sf74b.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-cyrillic-800-normal.0jm0x3fwumjpc.woff2)format("woff2"),url(../media/inter-cyrillic-800-normal.0fwzotchi0y-f.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-greek-ext-800-normal.3k72kqvea5c5b.woff2)format("woff2"),url(../media/inter-greek-ext-800-normal.2mmb79yjhjqv_.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-greek-800-normal.3258q3tqv0awz.woff2)format("woff2"),url(../media/inter-greek-800-normal.0v1rrb42xd-ei.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-vietnamese-800-normal.2e-qh93waan5z.woff2)format("woff2"),url(../media/inter-vietnamese-800-normal.1jj6xqtwla1yo.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-latin-ext-800-normal.1_7rco082g2bl.woff2)format("woff2"),url(../media/inter-latin-ext-800-normal.1z80e_d0b7l-r.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(../media/inter-latin-800-normal.1l5zt2v7macfm.woff2)format("woff2"),url(../media/inter-latin-800-normal.3p_gdtpozftvv.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Material Symbols Outlined;src:url(/fonts/material-symbols-outlined.woff2)format("woff2");font-display:block;font-style:normal;font-weight:400}:root{--app-font-family:Inter, Arial, sans-serif;--app-font-size-caption:13px;--app-font-size-sm:14px;--app-font-size-md:16px;--app-font-size-title:16px;--app-font-size-xl:20px;--app-font-size-display:24px;--app-line-height-label:16px;--app-line-height-normal:20px;--app-line-height-tight:1.25;--app-weight-regular:400;--app-weight-medium:500;--app-weight-bold:600;--app-space-hairline:1px;--app-space-micro:2px;--app-space-1:4px;--app-space-2:8px;--app-space-3:12px;--app-space-4:16px;--app-space-5:20px;--app-space-6:24px;--app-space-8:32px;--app-space-10:40px;--app-space-12:48px;--app-frame-inset:var(--app-space-6);--app-frame-radius:var(--app-space-4);--app-page-side-offset:var(--app-space-12);--app-content-padding:clamp(16px, 2.5vw, 36px);--app-control-height:32px;--app-touch-target:44px;--app-primary-action-height:44px;--app-primary-action-min-width:144px;--app-feedback-panel-width:352px;--app-search-width:320px;--app-stage-meta-top:20.8svh;--app-stage-rail-top:47.1svh;--app-motion-project-morph:.44s;--app-motion-project-fade:.44s;--app-motion-project-nav-in:.44s;--app-motion-project-nav-out:.44s;--app-motion-project-content-in:1.2s;--app-motion-project-content-in-delay:0s;--app-motion-project-content-out:.44s;--app-motion-project-content-out-delay:0s;--app-motion-project-guide-in:1.2s;--app-motion-project-guide-in-delay:0s;--app-motion-project-guide-out:.44s;--app-motion-project-guide-out-delay:0s;--app-motion-project-ease:cubic-bezier(.23, 1, .32, 1);--app-motion-scale-press:.97;--app-motion-duration-press:.16s;--app-content-narrow:1120px;--app-content-reading:720px;--app-content-case-study:936px;--app-content-compare:1080px;--app-sidebar-width:264px;--app-topbar-height:60px;--app-color-canvas:#fff;--app-color-link:#0057b8;--app-color-project-placeholder:#ecece8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--app-color-canvas);color:#05071f;font-family:var(--app-font-family)}*{box-sizing:border-box}.material-symbols-outlined{font-feature-settings:"liga";letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Symbols Outlined;font-style:normal;font-weight:400;line-height:1;display:inline-block}html{scroll-behavior:auto;scrollbar-width:none;background:var(--app-color-canvas)}html::-webkit-scrollbar{display:none}body{background:var(--app-color-canvas);min-width:320px;min-height:100%;font-family:var(--app-font-family);font-size:var(--app-font-size-sm);font-weight:var(--app-weight-regular);line-height:var(--app-line-height-normal);margin:0;overflow-x:hidden}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}.text-group,.form-field,.card-grid,.section-stack,.page-stack,.page-header{display:grid}.text-group,.form-field,.page-header{gap:var(--app-space-2)}.icon-label{align-items:center;gap:var(--app-space-2);display:inline-flex}.control-group{align-items:center;gap:var(--app-space-2);display:flex}.press-scale{transition-property:scale;transition-duration:var(--app-motion-duration-press);transition-timing-function:var(--app-motion-project-ease);scale:1}.press-scale:active:not(:disabled){scale:var(--app-motion-scale-press)}.card{padding:var(--app-space-4)}.modal-content{padding:var(--app-space-8)}.card-grid{gap:var(--app-space-3)}.section-stack{gap:var(--app-space-6)}.page-stack{gap:var(--app-space-8)}.page{width:100%;max-width:var(--app-content-narrow);padding:var(--app-space-12) var(--app-content-padding);margin-inline:auto}.page-content{margin-top:var(--app-space-8)}.portfolio-shell{isolation:isolate;height:100svh;position:relative;overflow:hidden}.portfolio-shell:before,.portfolio-shell:after{content:"";pointer-events:none;position:fixed}.portfolio-shell:before{z-index:6;inset:var(--app-frame-inset);border:var(--app-space-hairline) solid #05071f;border-radius:var(--app-frame-radius);box-shadow:0 0 0 100vmax #05071f}.portfolio-shell:after{z-index:0;inset:var(--app-frame-inset);border-radius:var(--app-frame-radius);background:var(--app-color-canvas)}.project-index,.resources-menu{z-index:4;position:fixed}.resources-menu{top:var(--app-space-12);z-index:7;left:50%;translate:-50%}.resources-trigger{min-height:var(--app-control-height);padding:0 var(--app-space-3);color:#05071f;cursor:pointer;font:inherit;font-size:var(--app-font-size-title);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);background:0 0;border:0}.skip-link{z-index:20;top:var(--app-space-4);left:var(--app-space-4);padding:var(--app-space-2) var(--app-space-3);border:var(--app-space-hairline) solid #05071f;color:#05071f;background:#fff;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.resources-trigger:focus-visible{outline:var(--app-space-hairline) solid #05071f;outline-offset:var(--app-space-micro)}.resources-menu .footer-icon{overflow:visible}.resources-trigger .footer-icon{transition:transform .18s var(--app-motion-project-ease)}.resources-menu.is-open .resources-trigger .footer-icon{transform:rotate(180deg)}.resources-dropdown{top:calc(100% + var(--app-space-2));width:calc(var(--app-search-width) - (3 * var(--app-space-8)));border:var(--app-space-hairline) solid #05071f2e;background:#f7f7f4;border-radius:0;display:grid;position:absolute;left:50%;translate:-50%}.resource-row{min-height:var(--app-touch-target);justify-content:space-between;align-items:center;gap:var(--app-space-4);padding:var(--app-space-3) var(--app-space-4);color:#05071f;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);display:flex}.resource-row+.resource-row{border-top:var(--app-space-hairline) solid #05071f2e}.resource-action-icon{flex:0 0 var(--app-space-4);width:var(--app-space-4);height:var(--app-line-height-normal);color:#9496a2;justify-content:center;align-items:center;display:inline-flex}a.resource-row:hover,a.resource-row:focus-visible{background:#fff}a.resource-row:hover .resource-action-icon,a.resource-row:focus-visible .resource-action-icon,.copy-email:hover .footer-icon,.copy-email:focus-visible .footer-icon,.copy-email.is-copied .footer-icon,.project-index button:hover,.project-index button:focus-visible,.project-index button.is-active{color:#05071f}.portfolio-stage,.portfolio-canvas-host{position:fixed;inset:0}.portfolio-stage{z-index:1}.portfolio-canvas-host{overflow:hidden}.portfolio-canvas,.portfolio-mascot-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.portfolio-canvas{z-index:1;cursor:default;touch-action:none}.portfolio-canvas:focus-visible{outline-offset:-8px;outline:2px solid #05071f}.portfolio-mascot-canvas{z-index:0;pointer-events:none;will-change:opacity}.portfolio-canvas.is-panel-hovered{cursor:grab}.portfolio-canvas.is-dragging{cursor:grabbing}.project-index,.resources-menu{transition:opacity var(--app-motion-project-fade) var(--app-motion-project-ease), transform var(--app-motion-project-fade) var(--app-motion-project-ease)}html.is-project-opening .project-index,html.is-project-opening .resources-menu,html.is-project-returning .project-index,html.is-project-returning .resources-menu{opacity:0;transform:translateY(-8px)}html.is-project-returning.is-home-content-visible .project-index,html.is-project-returning.is-home-content-visible .resources-menu{opacity:1;transform:translateY(0)}.project-index>span{color:#9496a2;font-weight:var(--app-weight-medium)}.copy-email{width:var(--app-space-4);height:var(--app-line-height-normal);color:#9496a2;cursor:pointer;transition:color .18s ease, scale var(--app-motion-duration-press) var(--app-motion-project-ease);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.copy-email:before{width:var(--app-control-height);height:var(--app-control-height);content:"";position:absolute}.copy-email:hover,.copy-email:focus-visible,.copy-email.is-copied{color:#05071f}.material-symbols-outlined.footer-icon{flex:0 0 var(--app-space-4);width:var(--app-space-4);height:var(--app-line-height-label);font-size:var(--app-font-size-md);line-height:var(--app-line-height-label);vertical-align:initial;display:block}.thumbnail-scroll{z-index:auto;width:41.3%;padding-top:var(--app-space-6);padding-bottom:calc(var(--app-topbar-height) + var(--app-space-6));gap:var(--app-space-6);will-change:transform;margin-left:50.6%;display:grid;position:relative}.project-thumbnail{aspect-ratio:16/9;width:100%;scroll-margin-block:8svh;position:relative;overflow:hidden}.project-thumbnail-frame{z-index:1;background:#d8d8d3;position:absolute;inset:0;overflow:hidden}.project-thumbnail-image{object-fit:cover;object-position:center}.project-thumbnail-number{z-index:2;right:var(--app-space-3);bottom:var(--app-space-3);color:#fff;font-size:var(--app-font-size-caption);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-label);mix-blend-mode:difference;position:absolute}.project-index{top:var(--app-stage-meta-top);right:var(--app-page-side-offset);justify-items:end;gap:var(--app-space-2);font-size:var(--app-font-size-sm);line-height:var(--app-line-height-normal);text-align:right;display:grid}.project-index button{color:#c7c8cd;cursor:pointer;font-weight:var(--app-weight-medium);background:0 0;border:0;padding:0;position:relative}.project-index button:hover,.project-index button:focus-visible,.project-index button.is-active{color:#05071f}.project-detail-shell{z-index:2;background:#fff;position:fixed;inset:0}html.is-project-opening .portfolio-stage,html.is-project-exiting .portfolio-stage{z-index:3}.project-detail-hero{--project-media-width:min(692px, 49.14vw);--project-copy-width:min(468px, 33.8vw);--project-overview-gap:clamp(48px, 4vw, 72px);--project-case-width:calc(var(--app-space-6) + var(--project-copy-width) + var(--project-overview-gap) + var(--project-media-width));z-index:1;height:calc(100svh - var(--app-frame-inset) - var(--app-frame-inset));margin:var(--app-frame-inset);padding:var(--app-space-12);border-radius:var(--app-frame-radius);color:#05071f;scrollbar-width:none;background:#fff;position:relative;overflow-y:auto}.project-detail-hero::-webkit-scrollbar{display:none}.project-detail-back{opacity:1;transition:opacity var(--app-motion-project-nav-in) var(--app-motion-project-ease), scale var(--app-motion-duration-press) var(--app-motion-project-ease)}.project-case-index,.project-case-switcher{opacity:1;transition:opacity var(--app-motion-project-nav-in) var(--app-motion-project-ease)}.project-case-contents{opacity:1;transition:opacity var(--app-motion-project-nav-in) var(--app-motion-project-ease);justify-self:end;display:block;position:relative}.project-archive-contents{z-index:3;top:calc(var(--app-stage-meta-top) - var(--app-frame-inset));width:max-content;height:0;margin-right:calc(var(--app-frame-inset) - var(--app-page-side-offset));margin-left:auto;position:sticky}.project-detail-copy,.project-case-body{opacity:1;transition:opacity var(--app-motion-project-content-in) var(--app-motion-project-ease) var(--app-motion-project-content-in-delay)}html.is-project-opening .project-detail-back,html.is-project-opening .project-case-index,html.is-project-opening .project-case-switcher,html.is-project-opening .project-case-contents,html.is-project-opening .project-detail-copy,html.is-project-opening .project-case-body{opacity:0}html.is-project-opening.is-project-content-visible .project-detail-back,html.is-project-opening.is-project-content-visible .project-case-index,html.is-project-opening.is-project-content-visible .project-case-switcher,html.is-project-opening.is-project-content-visible .project-case-contents,html.is-project-opening.is-project-content-visible .project-detail-copy,html.is-project-opening.is-project-content-visible .project-case-body{opacity:1}html.is-project-exiting .project-detail-back,html.is-project-exiting .project-case-index,html.is-project-exiting .project-case-switcher,html.is-project-exiting .project-case-contents{opacity:0}html.is-project-exiting .project-detail-back{transition-duration:var(--app-motion-project-nav-out), var(--app-motion-duration-press)}html.is-project-exiting .project-case-index,html.is-project-exiting .project-case-switcher,html.is-project-exiting .project-case-contents{transition-duration:var(--app-motion-project-nav-out)}html.is-project-exiting .project-detail-copy,html.is-project-exiting .project-case-body{opacity:0;transition-duration:var(--app-motion-project-content-out);transition-delay:var(--app-motion-project-content-out-delay)}html.is-project-opening .project-detail-media,html.is-project-exiting .project-detail-media{visibility:hidden}.project-detail-back{z-index:4;top:var(--app-space-6);left:var(--app-space-6);width:max-content;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);align-items:center;gap:var(--app-space-2);color:#05071f;display:inline-flex;position:absolute}.project-detail-back-icon{fill:none;stroke:#05071f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px;visibility:visible;flex:0 0 20px;width:20px;height:20px;display:block}.project-detail-navbar{z-index:5;width:var(--project-case-width);min-height:var(--app-touch-target);padding-block:var(--app-space-2);isolation:isolate;background:#fff;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;display:grid;position:sticky;top:0}.project-detail-navbar:before{z-index:-1;width:calc(100vw - var(--app-frame-inset) - var(--app-frame-inset));height:calc(100% + var(--app-space-12));content:"";background:#fff;position:absolute;bottom:0;left:50%;translate:-50%}.project-detail-navbar .project-detail-back{justify-self:start;position:static}.project-archive-index a{color:#c7c8cd}.project-archive-index a:hover,.project-archive-index a:focus-visible,.project-archive-index a.is-active{color:#05071f}.project-archive-index a:focus-visible{outline:var(--app-space-hairline) solid #05071f;outline-offset:var(--app-space-micro)}.project-case-index{z-index:3;top:calc(var(--app-stage-meta-top) - var(--app-frame-inset));width:max-content;height:0;margin-right:calc(var(--app-frame-inset) - var(--app-page-side-offset));font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);text-align:right;justify-items:end;gap:var(--app-space-2);margin-left:auto;display:grid;position:sticky}.project-case-index span,.project-case-index a{color:#c7c8cd}.project-case-index span.is-active,.project-case-index a.is-active,.project-case-index a:hover,.project-case-index a:focus-visible{color:#05071f}.project-case-contents .footer-icon{overflow:visible}.project-case-contents .resources-trigger{font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);padding:0}.project-case-switcher{min-height:var(--app-control-height);grid-template-columns:repeat(var(--project-case-view-count,3), 1fr);display:grid;position:relative}.project-case-switcher:after{width:calc(100% / var(--project-case-view-count,3));height:var(--app-space-hairline);content:"";pointer-events:none;transform:translateX(calc(100% * var(--project-case-active-index,0)));transition:transform var(--app-motion-project-nav-in) var(--app-motion-project-ease);background:#05071f;position:absolute;bottom:0;left:0}.project-case-switcher span,.project-case-switcher a{min-height:var(--app-control-height);padding-inline:var(--app-space-3);color:#9496a2;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);justify-content:center;align-items:center;display:inline-flex}.project-case-switcher span.is-active,.project-case-switcher a:hover,.project-case-switcher a:focus-visible{color:#05071f}.project-case-switcher a:focus-visible{outline:var(--app-space-hairline) solid #05071f;outline-offset:var(--app-space-micro)}.project-case-contents.is-open .resources-trigger .footer-icon{transform:rotate(180deg)}.project-case-contents-dropdown{background:#fff;left:auto;right:0;translate:0}.project-case-contents-dropdown .resource-row.is-active,.project-case-contents-dropdown .resource-row:hover,.project-case-contents-dropdown .resource-row:focus-visible{color:#05071f;background:#f7f7f4}.project-case-study{width:var(--project-case-width);margin:0 auto;position:relative}.project-case-study:before,.project-case-study:after{z-index:2;width:var(--app-space-hairline);content:"";opacity:1;pointer-events:none;transition:opacity var(--app-motion-project-guide-in) var(--app-motion-project-ease) var(--app-motion-project-guide-in-delay);background:#05071f2e;position:absolute;top:0;bottom:0}.project-case-study:before{left:0}.project-case-study:after{right:0}.project-detail-overview{grid-template-columns:var(--project-copy-width) var(--project-media-width);width:100%;margin-top:var(--app-space-6);padding-left:var(--app-space-6);align-items:center;gap:var(--project-overview-gap);scroll-margin-top:var(--app-space-12);display:grid;position:relative}.project-overview-guide{z-index:2;width:100%;height:var(--app-space-hairline);opacity:1;pointer-events:none;transition:opacity var(--app-motion-project-guide-in) var(--app-motion-project-ease) var(--app-motion-project-guide-in-delay);background:#05071f2e;position:absolute;left:0}html.is-project-opening .project-case-study:before,html.is-project-opening .project-case-study:after,html.is-project-opening .project-overview-guide,html.is-project-exiting .project-case-study:before,html.is-project-exiting .project-case-study:after,html.is-project-exiting .project-overview-guide{opacity:0}html.is-project-exiting .project-case-study:before,html.is-project-exiting .project-case-study:after,html.is-project-exiting .project-overview-guide{transition-duration:var(--app-motion-project-guide-out);transition-delay:var(--app-motion-project-guide-out-delay)}html.is-project-opening.is-project-content-visible .project-case-study:before,html.is-project-opening.is-project-content-visible .project-case-study:after,html.is-project-opening.is-project-content-visible .project-overview-guide{opacity:1}.project-overview-guide.is-top{top:0}.project-overview-guide.is-bottom{bottom:0}.project-detail-media{width:var(--project-media-width);padding:var(--app-space-6);display:grid;position:relative}.project-detail-image-frame{aspect-ratio:16/9;background:var(--app-color-project-placeholder);width:100%;position:relative;overflow:hidden}.project-detail-image{object-fit:cover;object-position:center}.project-detail-copy{width:var(--project-copy-width);padding-block:var(--app-space-6);align-content:center;gap:var(--app-space-6);display:grid}.project-detail-copy dl{gap:var(--app-space-6);margin:0;display:grid}.project-detail-copy dl div{gap:var(--app-space-1);display:grid}.project-detail-copy dt{color:#9496a2;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal)}.project-detail-copy dd{font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);margin:0}.project-detail-metadata-value{gap:var(--app-space-1);display:grid}.project-detail-metadata-note{color:#9496a2;font-weight:var(--app-weight-regular)}.project-url-stack{gap:0;display:grid}.project-external-link{align-items:center;gap:var(--app-space-1);width:max-content;color:var(--app-color-link);text-decoration:underline;text-decoration-thickness:var(--app-space-hairline);text-underline-offset:var(--app-space-micro);display:inline-flex}.project-external-link .footer-icon{color:currentColor;overflow:visible}.project-external-link:hover,.project-external-link:focus-visible{text-decoration-thickness:var(--app-space-micro)}.project-external-link:focus-visible{outline:var(--app-space-hairline) solid currentColor;outline-offset:var(--app-space-micro)}.project-case-body{padding:var(--app-space-12) var(--app-space-6) 0;display:grid}.project-archive-body{padding-top:0;padding-inline:0}.project-archive-entry{padding-block:var(--app-space-12);margin-top:0}.project-archive-body>.project-other-projects{width:calc(100% - (2 * var(--app-space-6)));margin-inline:var(--app-space-6)}.project-archive-body>.project-other-projects:before{top:0;right:calc(-1 * var(--app-space-6));left:calc(-1 * var(--app-space-6));height:var(--app-space-hairline);content:"";background:#05071f2e;position:absolute}.project-archive-copy{width:var(--project-copy-width);padding-block:var(--app-space-6);align-content:center;gap:var(--app-space-4);display:grid}.project-archive-copy h2{font-size:var(--app-font-size-xl);font-weight:var(--app-weight-bold);line-height:var(--app-line-height-tight);margin:0}.project-archive-copy ul{padding-left:var(--app-space-5);gap:var(--app-space-2);margin:0;display:grid}.project-archive-copy li{font-size:var(--app-font-size-sm);font-weight:var(--app-weight-regular);line-height:var(--app-line-height-normal)}.project-archive-authored-frame{border:var(--app-space-hairline) solid #05071f2e;box-shadow:none}.project-archive-contained-frame{background:#434343}.project-archive-comfyui-frame{background:#141414}.project-archive-contained-image{object-fit:contain}.project-archive-video{aspect-ratio:16/9;background:var(--app-color-project-placeholder);object-fit:cover;width:100%;height:100%;display:block}.project-case-section{width:100%;padding-block:var(--app-space-12);scroll-margin-top:var(--app-space-12);gap:var(--app-space-4);display:grid;position:relative}.project-case-section:first-child{padding-top:0}.project-case-section:last-child{padding-bottom:var(--app-space-12)}.project-case-section:after{right:calc(-1 * var(--app-space-6));bottom:0;left:calc(-1 * var(--app-space-6));height:var(--app-space-hairline);content:"";background:#05071f2e;position:absolute}.project-case-section>*{width:min(100%, var(--app-content-case-study))}.project-case-figure{margin:0}.project-case-video-section>.project-case-figure{width:100%;max-width:none}.project-case-figure img{width:100%;height:auto;display:block}.project-case-video{aspect-ratio:16/9;background:var(--app-color-project-placeholder);width:100%;height:auto;display:block}.project-design-system-section{width:100%;max-width:none}.project-design-system-frame{grid-template-columns:minmax(0, var(--app-sidebar-width)) minmax(0, 1fr);border:var(--app-space-hairline) solid #05071f;color:#fff;background:#05071f;min-height:min(70svh,720px);display:grid;overflow:hidden}.project-design-system-sidebar{border-right:var(--app-space-hairline) solid #ffffff2e;background:#05071f;grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.project-design-system-sidebar-header,.project-design-system-editor-header{align-items:center;display:flex}.project-design-system-sidebar-header{min-height:var(--app-control-height);padding:var(--app-space-4);gap:var(--app-space-2);border-bottom:var(--app-space-hairline) solid #ffffff2e;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium)}.project-design-system-tree{padding-block:var(--app-space-4);overflow:auto}.project-design-system-group{gap:var(--app-space-1);display:grid}.project-design-system-group+.project-design-system-group{margin-top:var(--app-space-4)}.project-design-system-group-label{padding:0 var(--app-space-4) var(--app-space-1);color:#ffffff85;font-size:var(--app-font-size-caption);line-height:var(--app-line-height-label)}.project-design-system-file{width:100%;min-width:0;padding:var(--app-space-2) var(--app-space-4);align-items:center;gap:var(--app-space-2);border:0;border-left:var(--app-space-hairline) solid transparent;color:#ffffffad;font:inherit;font-size:var(--app-font-size-sm);line-height:var(--app-line-height-normal);text-align:left;cursor:pointer;background:0 0;display:flex}.project-design-system-file:hover,.project-design-system-file:focus-visible,.project-design-system-file.is-selected{color:#fff;background:#ffffff1a}.project-design-system-file:focus-visible{outline:var(--app-space-hairline) solid #fff;outline-offset:calc(-1 * var(--app-space-hairline))}.project-design-system-file.is-selected{border-left-color:#fff}.project-design-system-file>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-design-system-editor{background:#05071f;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.project-design-system-editor-header{min-height:var(--app-control-height);padding:var(--app-space-2) var(--app-space-4);justify-content:space-between;gap:var(--app-space-4);border-bottom:var(--app-space-hairline) solid #ffffff2e;color:#fff;font-size:var(--app-font-size-sm);line-height:var(--app-line-height-normal)}.project-design-system-file-tab{align-items:center;gap:var(--app-space-2);min-width:0;display:flex}.project-design-system-file-tab>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-design-system-language{color:#ffffff8f;font-size:var(--app-font-size-caption);flex:none}.project-design-system-source{scrollbar-width:thin;scrollbar-color:#ffffff57 transparent;min-height:0;overflow:auto}.project-design-system-source::-webkit-scrollbar{width:var(--app-space-2);height:var(--app-space-2)}.project-design-system-source::-webkit-scrollbar-thumb{background:#ffffff57}.project-design-system-lines{min-width:max-content;padding:var(--app-space-4) var(--app-space-8) var(--app-space-8) calc(var(--app-space-8) + var(--app-space-6));color:#ffffff61;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--app-font-size-caption);line-height:var(--app-line-height-normal);margin:0}.project-design-system-lines li{min-height:var(--app-line-height-normal);padding-left:var(--app-space-2)}.project-design-system-lines li::marker{color:#ffffff57;font-variant-numeric:tabular-nums}.project-design-system-lines code{color:#fff;font:inherit;white-space:pre}.project-design-system-message{padding:var(--app-space-6);color:#ffffffb8;font-size:var(--app-font-size-sm);line-height:var(--app-line-height-normal);margin:0}@media (max-width:720px){.project-design-system-frame{grid-template-columns:1fr}.project-design-system-sidebar{border-right:0;border-bottom:var(--app-space-hairline) solid #ffffff2e;max-height:220px}.project-design-system-editor{min-height:70svh}}.project-case-section h2,.project-case-section h3,.project-case-section h4,.project-case-section p,.project-case-section ul,.project-case-section ol,.project-case-section blockquote{margin:0}.project-case-section h2{font-size:var(--app-font-size-xl);font-weight:var(--app-weight-bold);line-height:var(--app-line-height-tight)}.project-case-section h3{font-size:var(--app-font-size-title);font-weight:var(--app-weight-bold);line-height:var(--app-line-height-normal)}.project-case-section h4,.project-case-section p,.project-case-section li,.project-case-section blockquote{font-size:var(--app-font-size-sm);line-height:var(--app-line-height-normal)}.project-case-table-wrap{overflow-x:auto}.project-case-table-wrap table{border-collapse:collapse;width:100%;font-size:var(--app-font-size-sm);line-height:var(--app-line-height-normal)}.project-case-table-wrap th,.project-case-table-wrap td{padding:var(--app-space-3) var(--app-space-2);border-bottom:var(--app-space-hairline) solid #05071f2e;text-align:left;vertical-align:top}.project-case-table-wrap th,.project-case-section h4,.project-case-section strong{font-weight:var(--app-weight-bold)}.project-case-section p,.project-case-section li,.project-case-section blockquote{font-weight:var(--app-weight-regular)}.project-case-section ul,.project-case-section ol{padding-left:var(--app-space-5);gap:var(--app-space-2);display:grid}.project-case-section blockquote{max-width:var(--app-content-case-study);padding-left:var(--app-space-4);border-left:var(--app-space-hairline) solid #05071f2e}.project-case-decision{padding-top:var(--app-space-6);gap:var(--app-space-4);display:grid}.project-case-decision>div{gap:var(--app-space-2);display:grid}.project-other-projects{width:100%;padding-block:var(--app-space-12);gap:var(--app-space-6);display:grid;position:relative}.project-other-projects:after{right:calc(-1 * var(--app-space-6));bottom:0;left:calc(-1 * var(--app-space-6));height:var(--app-space-hairline);content:"";background:#05071f2e;position:absolute}.project-other-header{justify-content:space-between;align-items:center;display:flex}.project-other-header h2{font-size:var(--app-font-size-xl);font-weight:var(--app-weight-bold);line-height:var(--app-line-height-tight);margin:0}.project-other-card:focus-visible{outline:var(--app-space-hairline) solid #05071f;outline-offset:var(--app-space-1)}@media (prefers-reduced-motion:reduce){.press-scale:active:not(:disabled){scale:1}}.mobile-project-list,.project-mobile-view-menu-wrap,.project-mobile-archive-menu-wrap{display:none}@media (max-width:720px){:root{--app-frame-inset:calc(var(--app-space-6) * .4);--app-page-side-offset:var(--app-space-4);--project-mobile-control-size:calc(var(--app-touch-target) * 1.3);--project-mobile-icon-size:calc(20px * 1.3)}.portfolio-shell{height:auto;min-height:100svh;overflow:visible}.portfolio-stage{min-height:100svh;padding-inline:var(--app-space-4);position:relative;inset:auto}.portfolio-stage.is-project-stage,.portfolio-canvas-host{display:none}.resources-menu{top:var(--app-space-4)}.project-index{display:none}.mobile-project-list{padding:calc(var(--app-space-12) * 2) var(--app-space-2) var(--app-space-12);gap:calc(var(--app-space-8) * 2);display:grid}.mobile-project-card{gap:var(--app-space-2);color:#05071f;width:100%;display:grid}.mobile-project-card-label{max-width:100%;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);text-align:right;justify-self:end}.mobile-project-card-frame{aspect-ratio:16/9;background:var(--app-color-project-placeholder);width:100%;display:block;position:relative;overflow:hidden}.mobile-project-card-image{object-fit:cover}.project-detail-shell{min-height:100svh;position:relative;inset:auto}.project-detail-hero{--project-media-width:100%;--project-copy-width:100%;--project-overview-gap:0px;--project-case-width:100%;height:auto;min-height:100svh;margin:var(--app-frame-inset);padding:var(--app-space-6) var(--app-space-3) var(--app-space-8);overflow:visible}.project-detail-navbar{width:100%;min-height:60px;padding-block:var(--app-space-2);justify-content:space-between;align-items:center;margin:0;display:flex}.project-detail-navbar:before{width:100%;height:calc(100% + var(--app-space-6));left:0;translate:0}.project-detail-navbar .project-detail-back,.project-detail-hero>.project-detail-back{width:var(--project-mobile-control-size);min-width:var(--project-mobile-control-size);height:var(--project-mobile-control-size);min-height:var(--project-mobile-control-size);padding:calc((var(--project-mobile-control-size) - var(--project-mobile-icon-size) - (2 * var(--app-space-hairline))) / 2);border-radius:0;justify-content:center;align-items:center;gap:0;font-size:0;position:static}.project-detail-back-label{display:none}.project-detail-navbar .project-detail-back-icon,.project-detail-hero>.project-detail-back .project-detail-back-icon{flex-basis:var(--project-mobile-icon-size);width:var(--project-mobile-icon-size);height:var(--project-mobile-icon-size)}.project-detail-hero>.project-detail-back{z-index:5;width:var(--project-mobile-control-size);background:#fff;margin:0;display:flex;position:sticky;top:0}.project-case-index,.project-archive-index,.project-case-switcher,.project-case-contents{display:none!important}.project-mobile-view-menu-wrap{z-index:6;margin-left:auto;display:block;position:relative;top:auto;right:auto}.project-mobile-menu-trigger{width:var(--project-mobile-control-size);min-width:var(--project-mobile-control-size);height:var(--project-mobile-control-size);min-height:var(--project-mobile-control-size);padding:calc((var(--project-mobile-control-size) - var(--project-mobile-icon-size) - (2 * var(--app-space-hairline))) / 2);color:#05071f;cursor:pointer;background:#fff;border:0;border-radius:0;justify-content:center;align-items:center;display:inline-flex}.project-mobile-menu-icon{flex:0 0 var(--project-mobile-icon-size);width:var(--project-mobile-icon-size);height:var(--project-mobile-icon-size);fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px;display:block}.project-mobile-view-menu{top:calc(100% + var(--app-space-2));min-width:176px;max-width:calc(100vw - (2 * var(--app-space-8)));border:var(--app-space-hairline) solid #05071f2e;background:#fff;display:grid;position:absolute;right:0}.project-mobile-view-menu a,.project-mobile-view-menu span{min-height:var(--app-touch-target);padding:var(--app-space-3) var(--app-space-4);color:#9496a2;font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal);text-align:left;align-items:center;display:flex}.project-mobile-view-menu>*+*{border-top:var(--app-space-hairline) solid #05071f2e}.project-mobile-view-menu a:hover,.project-mobile-view-menu a:focus-visible,.project-mobile-view-menu span.is-active{color:#05071f}.project-mobile-view-menu a:focus-visible{outline:var(--app-space-hairline) solid #05071f;outline-offset:calc(-1 * var(--app-space-hairline))}.project-mobile-archive-menu-wrap{top:calc(var(--app-space-2) + var(--app-space-6));right:var(--app-space-3);z-index:8;display:block;position:absolute}.project-mobile-archive-menu-wrap .project-mobile-view-menu{display:grid}.project-case-study{width:100%}.project-detail-overview{grid-template-columns:1fr;align-items:start;gap:0;margin-top:0;padding-left:0;scroll-margin-top:60px}.project-detail-media{width:100%;padding:var(--app-space-3) 0;order:-1}.project-detail-copy{width:100%;padding:var(--app-space-3);gap:var(--app-space-3)}.project-detail-copy dl{gap:var(--app-space-3)}.project-case-body{padding:var(--app-space-6) var(--app-space-3) 0}.project-case-section{padding-block:var(--app-space-6);gap:var(--app-space-3);scroll-margin-top:60px}.project-case-section:last-child{padding-bottom:var(--app-space-6)}.project-case-section:after,.project-other-projects:after{right:calc(-1 * var(--app-space-3));left:calc(-1 * var(--app-space-3))}.project-case-decision{padding-top:var(--app-space-3);gap:var(--app-space-3)}.project-archive-entry{padding-block:var(--app-space-6)}.project-archive-copy{width:100%;padding:var(--app-space-3);gap:var(--app-space-3)}.project-archive-body>.project-other-projects{width:calc(100% - (2 * var(--app-space-3)));margin-inline:var(--app-space-3)}.project-archive-body>.project-other-projects:before{right:calc(-1 * var(--app-space-3));left:calc(-1 * var(--app-space-3))}.project-other-projects{padding-block:var(--app-space-6);gap:var(--app-space-3)}.project-other-track{gap:var(--app-space-3)}.project-other-card{flex-basis:calc(100vw - (3 * var(--app-space-8)))}.project-design-system-message{padding:var(--app-space-3)}}.project-other-track{gap:var(--app-space-6);scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;overscroll-behavior-inline:contain;touch-action:pan-y;-webkit-user-select:none;user-select:none;display:flex;overflow-x:auto}.project-other-track::-webkit-scrollbar{display:none}.project-other-track.is-dragging{scroll-snap-type:none;cursor:grabbing}.project-other-card{gap:var(--app-space-2);scroll-snap-align:start;flex:0 0 min(360px,34vw);display:grid}.project-other-image-frame{aspect-ratio:16/9;background:#ecece8;width:100%;position:relative;overflow:hidden}.project-other-image{object-fit:cover;object-position:center;pointer-events:none}.project-other-card>span{font-size:var(--app-font-size-sm);font-weight:var(--app-weight-medium);line-height:var(--app-line-height-normal)}.grain{z-index:7;pointer-events:none;opacity:.12;mix-blend-mode:multiply;will-change:transform;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.72'/%3E%3C/svg%3E");background-size:180px 180px;width:210%;height:210%;animation:.18s steps(2,end) infinite grain-shift;position:fixed;top:-55%;left:-55%}@keyframes grain-shift{0%{transform:translate(-3%,2%)}20%{transform:translate(4%,-5%)}40%{transform:translate(-6%,4%)}60%{transform:translate(5%,5%)}80%{transform:translate(-4%,-3%)}to{transform:translate(3%,-4%)}}@media (prefers-reduced-motion:reduce){:root{--app-motion-project-fade:.2s;--app-motion-project-nav-in:.2s;--app-motion-project-nav-out:.2s;--app-motion-project-content-in:.2s;--app-motion-project-content-in-delay:0s;--app-motion-project-content-out:.2s;--app-motion-project-content-out-delay:0s;--app-motion-project-guide-in:.2s;--app-motion-project-guide-in-delay:0s;--app-motion-project-guide-out:.2s;--app-motion-project-guide-out-delay:0s}html{scroll-behavior:auto}.grain{animation:none}::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}}@media (max-width:720px){.project-other-track{gap:var(--app-space-3)}.project-other-card{flex-basis:calc(100vw - (3 * var(--app-space-8)))}}
