@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5f841e19a104a2f1-s.0a0d2ced.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/6d62c74c8e468ef4-s.f58da2fe.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/9d978ba009f47915-s.p.cb5dc5cb.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53e45098eac42afb-s.cedabf29.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85ea1b3aadcead52-s.4bda54ec.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3c285486269019b7-s.p.f6eddd95.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a3bcb02a0e9e5d11-s.5d07ebb5.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35fd19aef91b293-s.d77488a5.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8f46d218c8f79e34-s.p.12435988.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ffc259da9d23054-s.8ab0ac6e.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9e486ba39c38fb8a-s.190f34c5.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6f42e0a3b0519c4d-s.p.7183773d.woff2)format("woff2");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:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.be_vietnam_pro_d0ebb828-module__qTOpzG__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_d0ebb828-module__qTOpzG__variable{--font-be-vietnam:"Be Vietnam Pro","Be Vietnam Pro Fallback"}
@font-face{font-family:Coming Soon;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7128f17f8f154441-s.p.76feac0f.woff2)format("woff2");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:Coming Soon Fallback;src:local(Arial);ascent-override:99.46%;descent-override:47.04%;line-gap-override:1.98%;size-adjust:103.4%}.coming_soon_8d71ec9c-module__QC9ttG__className{font-family:Coming Soon,Coming Soon Fallback;font-style:normal;font-weight:400}.coming_soon_8d71ec9c-module__QC9ttG__variable{--font-coming-soon:"Coming Soon","Coming Soon Fallback"}
html,body{cursor:url(/assets/cursor.png) 4 4,auto}html{margin:0}body{padding:30px 50px;font-family:Be Vietnam Pro,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.header-container{justify-content:space-between;align-items:center;gap:24px;display:flex}.contact-info{justify-content:flex-end;align-items:center;gap:48px;display:flex}.contact-info img{width:28px;height:28px;display:block}.contact-info img:hover{opacity:.75;cursor:url(/assets/cursor.png) 4 4,auto}.contact-info a{align-items:center;display:inline-flex}.hero{grid-template-columns:160px minmax(320px,1fr) 160px;align-items:center;column-gap:48px;max-width:1400px;min-height:calc(100vh - 244px);margin:0 auto;padding:16px 120px 72px;display:grid}.hero__center{text-align:center;flex-direction:column;align-items:center;gap:18px;display:flex}.hero__badge{color:#555;background:#fff;border:1px solid #ddd;border-radius:999px;margin-bottom:24px;padding:10px 16px;font-size:14px;display:inline-block}.hero__headline{color:#767676;margin:0;font-size:clamp(26px,3.2vw,44px);font-weight:300;line-height:1.15}.hero__headline strong{color:#111;font-weight:700}.hero__cta{color:#111;border:2px solid #111;border-radius:14px;justify-content:center;align-items:center;padding:14px 22px;font-size:28px;line-height:1;text-decoration:none;display:inline-flex}.hero__namepill{color:#fff;background:#2f6bff;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;display:inline-block}.hero__left,.hero__right{display:block}@media (max-width:900px){.hero{grid-template-columns:1fr;row-gap:28px}}.hero__left{width:220px;height:320px;margin-right:-150px;position:relative}.sticker{-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute}.sticker--command{width:140px;top:-56px;left:90px}.sticker--avatar{width:160px;bottom:-6px;left:80px;transform:rotate(-24deg)}.hero__right{justify-content:center;align-items:center;width:220px;height:320px;margin-left:-60px;display:flex;position:relative}.avatar-hover{width:180px;height:180px;position:absolute;bottom:-6px;left:60px}.avatar{width:160px;position:absolute;bottom:0;left:0}.avatar-caption{color:#111;opacity:0;width:260px;margin:0;font-family:Coming Soon,cursive;font-size:18px;line-height:1.3;position:absolute;top:172px;left:50%;transform:translate(-50%,6px)}.avatar-hover .avatar{width:100%;height:auto;display:block;position:absolute;inset:0}.avatar-hover .avatar--hover{opacity:0}.avatar-hover .avatar-caption{color:#111;text-align:center;opacity:0;width:300px;margin:0;font-family:Coming Soon,cursive;font-size:18px;line-height:1.25;position:absolute;top:100%;left:50%;transform:translate(-50%,6px)}.avatar-hover:hover .avatar--default{opacity:0}.avatar-hover:hover .avatar--hover{opacity:1;transform:scale(1.2)}.avatar-hover:hover .avatar-caption{opacity:1;transform:translate(-50%)}.bar-hover{width:180px;height:300px;position:relative}.bar-hover .bar{width:100%;height:auto;display:block;position:absolute;top:0;left:0}.bar-hover .bar--hover,.bar-hover:hover .bar--default{opacity:0}.bar-hover:hover .bar--hover{opacity:1;transform:scale(1.6)}.bar-caption{color:#111;text-align:left;opacity:0;pointer-events:none;width:260px;margin:0;font-family:Coming Soon,cursive;font-size:16px;line-height:1.35;position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,6px)}.bar-hover:hover .bar-caption{opacity:1;transform:translate(-50%)}.command-hover{width:180px;height:160px;position:absolute;top:-40px;left:90px}.command-hover .command{width:100%;height:100%;display:block;position:absolute;inset:0}.command-hover .command--hover{opacity:0}.command-caption{color:#111;text-align:right;opacity:0;pointer-events:none;width:180px;margin:0;font-family:Coming Soon,cursive;font-size:16px;line-height:1.35;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)}.command-hover:hover .command--default{opacity:0}.command-hover:hover .command--hover,.command-hover:hover .command-caption{opacity:1}.name-hover{display:inline-block;position:relative}.site-title{margin:0}.name-popover{opacity:0;pointer-events:none;gap:8px;width:180px;transition:none;display:grid;position:absolute;top:calc(100% + 10px);left:0}.name-hover:hover .name-popover{opacity:1}.flags{width:160px;height:auto;display:block}.name-caption{color:#111;margin:0;font-family:Coming Soon,cursive;font-size:16px;line-height:1.35}.bottom-menu{z-index:1000;background:#f6f6f6;border:1px solid #d9d9d9;border-radius:16px;gap:8px;padding:12px 10px;display:flex;position:fixed;bottom:56px;left:50%;transform:translate(-50%)}.menu-item{background:#fff;border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;text-decoration:none;transition:transform .18s,background-color .18s;display:flex;position:relative}.menu-item img{width:28px;height:28px;display:block}.bottom-menu:hover .menu-item{cursor:url(/assets/cursor.png) 4 4,auto;transform:scale(.96)}.bottom-menu .menu-item:hover{z-index:2;background:#fff;transform:translateY(-14px)scale(1.18)}.menu-item:before{content:attr(data-label);color:#fff;letter-spacing:.02em;opacity:0;pointer-events:none;background:#000;border-radius:999px;padding:8px 16px;font-size:18px;line-height:1;transition:opacity .18s;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%)}.menu-item:hover:before{opacity:1}.badge-hover{display:inline-block;position:relative}.badge-group{transform-origin:50%;transition:none;position:relative}.badge-critters{text-align:center;opacity:0;pointer-events:none;width:320px;transition:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.badge-critters-row{justify-content:center;align-items:flex-end;gap:0;margin-top:0;display:flex}.critter{width:64px;height:auto;display:block}.badge-caption{color:#111;margin:0;font-family:Coming Soon,cursive;font-size:16px;line-height:1.25}.badge-hover:hover .badge-critters{opacity:1}.badge-hover:hover .badge-group{transform:rotate(-8deg)translateY(6px)}.sticker--command{top:-22px}.sticker--z{top:60px}.sticker--avatar{top:190px}.about{grid-template-columns:260px minmax(520px,1fr) 260px;align-items:start;column-gap:80px;max-width:1400px;margin:0;padding:32px 120px 72px;display:grid}.about__left,.about__right{width:260px;height:560px;position:relative}.about__center{flex-direction:column;align-items:flex-start;gap:24px;display:flex}.about__headline{text-align:center;color:#111;margin:0;font-size:32px;font-weight:600}.about__text p{color:#555;margin:0;font-size:20px;line-height:1.6}.about__text a{color:#2f6bff}@media (max-width:900px){.about{grid-template-columns:1fr;row-gap:48px}.about__left,.about__right{display:none}.about__center{text-align:center;align-items:center}.about__text{align-items:center}}.face-hover{aspect-ratio:1;width:180px;position:relative;overflow:hidden}.face{width:100%;height:auto;display:block}.face--hover{opacity:0;position:absolute;top:0;left:0}.face--default{opacity:1}.polaroid:hover .face--default{opacity:0}.polaroid:hover .face--hover{opacity:1}.about__sticker{position:absolute}.about__left .about__sticker--tl{top:0;left:40px}.about__left .about__sticker--bl{bottom:0;left:0}.about__right .about__sticker--tr{top:0;right:40px}.about__right .about__sticker--br{bottom:0;right:0}.polaroid{box-sizing:border-box;background:#fff;border:1px solid #e5e5e5;width:220px;padding:14px 14px 32px;position:relative}.polaroid .face-hover{aspect-ratio:1;background:#f8f8f8;width:100%;overflow:hidden}.polaroid .face-hover span,.polaroid .face-hover img{object-fit:cover;display:block;width:100%!important;height:100%!important}.polaroid img{border-radius:1px;width:100%;height:auto;display:block}.polaroid--tilt-left{transform:rotate(-6deg)}.polaroid--tilt-right{transform:rotate(16deg)}.about__text{flex-direction:column;gap:20px;max-width:560px;display:flex}.about__text p{color:#555;letter-spacing:-.01em;font-size:20px;line-height:1.6}.about__text a{color:#2f6bff;font-weight:500;text-decoration:none}.polaroid__caption{color:#111;opacity:0;max-height:0;margin:12px 0 0;font-family:Coming Soon,cursive;font-size:16px;line-height:1.35;transition:opacity,max-height;overflow:hidden}.polaroid--caption-hover{transition:transform,padding-bottom}.polaroid--caption-hover:hover{padding-bottom:16px;transform:rotate(0)}.polaroid--caption-hover:hover .polaroid__caption{opacity:1;max-height:100px}.home-shell{max-width:1400px;margin:0 auto;padding:32px 120px 72px}@media (max-width:900px){.home-shell{padding:32px 24px 72px}}.section-container{width:100%}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px;display:flex}.section-title{color:#111;letter-spacing:-.02em;margin:0;font-size:clamp(28px,4vw,40px);font-weight:600}.section-subtitle{color:#767676;margin:0;font-size:16px;font-weight:400}.section-filters{flex-wrap:nowrap;gap:12px;display:flex;overflow-x:auto}@media (max-width:768px){.section-header{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px}}@media (max-width:640px){.section-filters{gap:8px}}.section-filter-button{color:#555;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d9d9d9;border-radius:999px;outline:none;flex-shrink:0;padding:10px 20px;font-family:Be Vietnam Pro,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500}.section-filter-button:focus-visible{outline-offset:2px;outline:2px solid #2f6bff}.section-filter-button:hover{background:#f6f6f6;border-color:#111}.section-filter-button--active{color:#fff;background:#111;border-color:#111}.section-filter-button--active:hover{background:#333}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:32px;display:grid}@media (max-width:768px){.projects-grid{grid-template-columns:1fr;gap:24px}}@media (min-width:1200px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr))}}.design-grid{grid-template-columns:repeat(3,1fr)}@media (max-width:1024px){.design-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.design-grid{grid-template-columns:1fr}}.section-empty-state{text-align:center;color:#767676;grid-column:1/-1;padding:64px 24px;font-size:18px;line-height:1.6}.project-card-frame{flex-direction:column;height:100%;display:flex}.project-card-frame a,.project-card-frame a:hover,.project-card-frame a:focus,.project-card-frame a:visited,.project-card-frame a:active{color:inherit;height:100%;display:block;text-decoration:none!important}.project-card-frame a *,.project-card-frame a:hover *,.project-card-frame a:focus *,.project-card-frame a:visited *,.project-card-frame a:active *{text-decoration:none!important}.project-card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;flex-direction:column;height:100%;display:flex;overflow:hidden}.project-card-thumbnail{background:#fff;justify-content:center;align-items:center;width:100%;height:240px;display:flex;overflow:hidden}.project-card-image{object-fit:cover;width:100%;height:100%}.project-card>div:last-child{flex-direction:column;flex:1;gap:12px;padding:20px;display:flex}.project-card-title-row{justify-content:space-between;align-items:center;gap:16px;margin-bottom:4px;display:flex}.highlight{color:#111;letter-spacing:-.01em;flex:1;margin:0;font-size:20px;font-weight:600;line-height:1.3;text-decoration:none!important}.description{color:#555;flex:1;margin:0;font-size:15px;line-height:1.6;text-decoration:none!important}.project-card-links{z-index:10;flex-shrink:0;align-items:center;gap:8px;font-size:14px;display:flex;position:relative}.project-card-link-item{cursor:pointer;z-index:20;font-family:Be Vietnam Pro,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:color .15s;position:relative;color:#111!important;text-decoration:none!important}.project-card-link-item:hover{color:#2f6bff!important;text-decoration:none!important}.project-card-link-item:visited,.project-card-link-item:active{color:#111!important}.project-card-link-separator{color:#d9d9d9;font-size:14px}.project-card-link,.project-card-link:hover,.project-card-link:focus,.project-card-link:visited,.project-card-link:active,.project-card p,.project-card div,.project-card-link :not(.project-card-link-item):not(.project-card-links):not(.project-card-link-separator){text-decoration:none!important}.project-tag{text-transform:lowercase;letter-spacing:.02em;white-space:nowrap;border:none;border-radius:6px;align-items:center;padding:4px 10px;font-size:11px;font-weight:500;line-height:1.2;display:inline-flex}.project-tags-container{flex-wrap:wrap;gap:8px;margin:0;display:flex}.detail-grid{grid-template-columns:280px 1fr;align-items:start;gap:64px;max-width:1200px;margin:0 auto;display:grid}.detail-grid--no-toc{grid-template-columns:1fr}@media (max-width:1024px){.detail-grid{grid-template-columns:240px 1fr;gap:48px}.detail-grid--no-toc{grid-template-columns:1fr}}@media (max-width:768px){.detail-grid{grid-template-columns:1fr;gap:32px}}.detail-toc{margin-left:0;padding-top:8px;padding-left:0;position:sticky;top:32px}@media (max-width:768px){.detail-toc{order:-1;position:static}}.detail-toc-title{color:#111;letter-spacing:-.01em;margin:0 0 24px;font-size:18px;font-weight:600}.detail-toc nav ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.detail-toc-item{margin:0}.detail-toc-item--nested{margin-left:16px}.detail-toc-link{color:#767676;padding:6px 0;font-size:14px;line-height:1.4;text-decoration:none;transition:color .15s;display:block}.detail-toc-link:hover{color:#111}.detail-toc-link--active{color:#111;font-weight:500}.detail-toc-link--nested{color:#999;font-size:13px}.detail-toc-link--nested:hover,.detail-toc-link--nested.detail-toc-link--active{color:#555}.detail-content{min-width:0;padding-top:8px;position:relative}.detail-scroll-progress{z-index:1000;background:#f0f0f0;height:2px;position:fixed;top:0;left:0;right:0}.detail-scroll-progress-bar{background:#111;height:100%;transition:width .1s ease-out}.detail-header{margin-bottom:8px}.detail-title{color:#111;letter-spacing:-.02em;max-width:880px;margin:0 0 16px;font-size:clamp(32px,4vw,48px);font-weight:600;line-height:1.2}.detail-summary{color:#555;max-width:880px;margin:20px 0 0;font-size:18px;line-height:1.6}.detail-body{color:#333;max-width:880px;font-size:16px;line-height:1.7}.detail-body h2{color:#111;letter-spacing:-.01em;margin:48px 0 16px;font-size:28px;font-weight:600}.detail-body h3{color:#111;letter-spacing:-.01em;margin:32px 0 12px;font-size:22px;font-weight:600}.detail-body h4{color:#111;margin:24px 0 10px;font-size:18px;font-weight:600}.detail-body p{color:#333;margin:0 0 20px}.detail-body a{color:#2f6bff;text-decoration:none}.detail-body a:hover{text-decoration:underline}.detail-body img{border-radius:8px;width:100%;max-width:880px;height:auto;margin:24px 0}.detail-body ul,.detail-body ol{margin:20px 0;padding-left:24px}.detail-body li{color:#333;margin:8px 0}.detail-body code{color:#111;background:#f5f5f5;border-radius:4px;padding:2px 6px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px}.detail-body pre{background:#f5f5f5;border-radius:8px;margin:24px 0;padding:20px;overflow-x:auto}.detail-body pre code{color:#111;background:0 0;padding:0}.blog-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.blog-list-item{margin:0}.blog-list-link{color:#333;align-items:center;gap:12px;padding:8px 0;font-size:16px;line-height:1.5;text-decoration:none;transition:color .15s;display:flex}.blog-list-link:hover{color:#111}.blog-list-date{color:#767676;white-space:nowrap;font-family:Be Vietnam Pro,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.blog-list-separator{color:#d9d9d9;font-size:14px}.blog-list-title{color:#111;font-family:Be Vietnam Pro,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}.blog-list-link:hover .blog-list-title{color:#2f6bff}
