@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");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:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/martian-mono-cyrillic-ext-wght-normal.DAknEryR.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/martian-mono-cyrillic-wght-normal.B84CD5C_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/martian-mono-latin-ext-wght-normal.DlL6xMw5.woff2)format("woff2-variations");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:Martian Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/martian-mono-latin-wght-normal.5W32yIyr.woff2)format("woff2-variations");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.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}:root{--bg:#f4f4f4;--text:#404040;--muted:#6e6e6e;--muted-line:#b3b3b3;--dark:#161819;--black:#050505;--white:#fff;--accent:#055dff;--line:#4040402e;--line-dark:#ffffff29;--font-main:"Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:"Martian Mono Variable", "Martian Mono", ui-monospace, monospace;--font-tech:"IBM Plex Mono", ui-monospace, monospace;--fs-hero:clamp(72px, 20vw, 180px);--fs-xl:clamp(40px, 5.6vw, 84px);--fs-lg:clamp(40px, 4.4vw, 64px);--fs-md:clamp(32px, 3.8vw, 56px);--fs-counter:clamp(28px, 2.6vw, 36px);--fs-body:clamp(14px, 1.05vw, 16px);--fs-label:10px;--fs-tiny:7px;--margin:clamp(20px, 4.4vw, 80px);--gutter:clamp(12px, 1.5vw, 24px);--cols:12;--ease:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--t-micro:.2s;--t-hover:.38s;--t-text:.65s;--t-image:.85s;--t-section:1s}@media (width<=1439.98px){:root{--cols:8}}@media (width<=809.98px){:root{--cols:4}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color-scheme:light;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-main);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.4;overflow-x:clip}h1,h2,h3,h4,h5,h6{font-weight:400;font-size:inherit;margin:0;line-height:1.1}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img,svg,video,canvas{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--text);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.bleed{padding-inline:var(--margin)}.grid{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));column-gap:var(--gutter);display:grid}.grid>*{grid-column:span var(--c,var(--cols)) / span var(--c,var(--cols))}.grid>[style*=--s]{grid-column:var(--s) / span var(--c,1)}@media (width<=809.98px){.grid>*,.grid>[style*=--s]{grid-column:span var(--c-m,var(--cols)) / span var(--c-m,var(--cols))}}.t-hero{font-family:var(--font-main);font-size:var(--fs-hero);letter-spacing:-.045em;font-weight:700;line-height:.84}.t-xl{font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:400;line-height:1.4}.t-lg{font-family:var(--font-main);font-size:var(--fs-lg);letter-spacing:-.01em;line-height:1.1}.t-md{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:-.02em;font-weight:400;line-height:1.1}.t-counter{font-family:var(--font-mono);font-size:var(--fs-counter);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:400}.t-body{font-size:var(--fs-body);max-width:62ch;line-height:1.4}.t-label{font-family:var(--font-tech);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.1em;line-height:1.2}.t-tiny{font-family:var(--font-tech);font-size:var(--fs-tiny);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);line-height:1.3}.t-muted{color:var(--muted)}.t-accent{color:var(--accent)}.rule{background:var(--line);transform-origin:0;border:0;width:100%;height:1px}.section{padding-block:clamp(80px,11vh,160px);position:relative}.section-label{color:var(--text);align-items:baseline;gap:10px;margin-bottom:clamp(28px,4vh,56px);display:flex}.section-label b{font-weight:400;font-family:var(--font-mono);font-size:var(--fs-label)}.link{align-items:center;gap:6px;display:inline-flex;position:relative}.link>span{transition:transform var(--t-hover) var(--ease)}.link>i{opacity:0;transition:opacity var(--t-hover) var(--ease), transform var(--t-hover) var(--ease);font-style:normal;transform:translate(-6px)}.link:hover>span,.link:focus-visible>span{transform:translate(-4px)}.link:hover>i,.link:focus-visible>i{opacity:1;transform:translate(0)}.on-dark{background:var(--dark);--text:#f4f4f4;--muted:#f4f4f49e;--line:var(--line-dark);--accent:#5c9bff;color:var(--text)}.skip-link{z-index:1000;background:var(--text);color:var(--bg);transition:transform var(--t-micro) var(--ease);padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.hdr{z-index:100;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:clamp(16px,3vw,48px);height:56px;display:flex;position:fixed;top:0;left:0;right:0}.hdr-mark{font-family:var(--font-main);letter-spacing:-.03em;color:var(--text);font-size:14px;font-weight:700}.hdr-where{color:var(--text);gap:6px;display:flex}.hdr-nav{margin-left:auto}.hdr-nav ul{gap:clamp(14px,2vw,32px);display:flex}.hdr-nav a{color:var(--text)}.hdr-end{align-items:center;gap:clamp(12px,1.6vw,24px);display:flex}.hdr-clock{gap:6px;display:flex}.hdr-clock time{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media (width<=1439.98px){.hdr-nav{display:none}.hdr-end{margin-left:auto}}@media (width<=809.98px){.hdr-where,.hdr-year{display:none}}.menu{z-index:200;clip-path:inset(0 0 100%);transition:clip-path var(--t-section) var(--ease);align-items:center;display:grid;position:fixed;inset:0}.menu[data-open]{clip-path:inset(0)}.menu-inner{gap:clamp(24px,5vh,56px);width:100%;display:grid}.menu-list{gap:clamp(4px,1vh,12px);display:grid}.menu-list a{align-items:baseline;gap:clamp(12px,2vw,28px);padding-block:4px;display:flex}.menu-word{transition:transform var(--t-hover) var(--ease);display:inline-block}.menu-list a:hover .menu-word,.menu-list a:focus-visible .menu-word{transform:translate(16px)}.menu-foot{border-top:1px solid var(--line);justify-content:space-between;padding-top:16px;display:flex}.hero{align-content:space-between;row-gap:clamp(32px,6vh,80px);min-height:100svh;padding-top:56px;padding-bottom:clamp(20px,4vh,40px);display:grid}.hero-top{align-items:start;row-gap:clamp(24px,4vh,48px);padding-top:clamp(40px,9vh,120px)}.hero-slash{font-family:var(--font-mono);font-size:var(--fs-xl);color:var(--accent);margin-bottom:clamp(8px,1.5vh,20px);line-height:1;display:block}.hero-mark{display:block}.hero-row{white-space:nowrap;display:block;overflow:hidden}.hero-char{will-change:transform;display:inline-block}.hero-say{align-self:start;gap:2px;padding-top:clamp(40px,8vh,110px);display:grid}.hero-say p{color:var(--text)}.hero-foot{border-top:1px solid var(--line);align-items:end;padding-top:14px}.hero-meta{gap:3px;display:grid}.hero-index{align-items:baseline;gap:8px;display:flex}.hero-index .unit{font-family:var(--font-tech);font-size:var(--fs-label);letter-spacing:.1em}.hero-scroll{justify-self:end;align-items:center;gap:8px;display:flex}.hero-scroll .arrow{animation:hero-nudge 2.4s var(--ease) infinite;display:inline-block}@keyframes hero-nudge{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.45;transform:translateY(5px)}}.foot{padding-block:clamp(60px,10vh,120px) clamp(20px,3vh,32px);position:relative}.foot-fx{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.foot-fx-canvas{width:100%;height:100%;display:block}.foot>.bleed{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.foot-fx{display:none}}.foot-top{align-items:start;row-gap:clamp(32px,6vh,64px)}.foot-cols{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:clamp(20px,3vw,40px);display:grid}.foot-cols p:first-child{margin-bottom:6px}.foot .t-tiny{color:var(--text)}.foot-bottom{border-top:1px solid var(--line);margin-top:clamp(48px,8vh,96px);padding-top:14px}.foot-sign{text-align:right}.section-rule{flex:1;align-self:center;margin-left:clamp(12px,2vw,28px)}.word{vertical-align:top;margin-bottom:-.12em;padding-bottom:.12em;display:inline-block;overflow:hidden}.char{will-change:transform;display:inline-block}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.about{align-items:start;row-gap:clamp(28px,5vh,56px)}.about-body{gap:1em;display:grid}.about-body p{position:relative}.pw{will-change:transform;display:inline-block}.pl{background:var(--line);transform-origin:0;pointer-events:none;width:100%;height:1px;position:absolute;left:0}.about-meta{align-content:start;gap:clamp(16px,2.4vh,28px);display:grid}.about-meta p:first-child{margin-bottom:5px}.stats{row-gap:clamp(24px,4vh,40px);margin-top:clamp(48px,8vh,96px)}.stat{border-top:1px solid var(--line);padding-top:12px}.stat p:first-child{margin-bottom:6px}.work-status{border-bottom:1px solid var(--line);gap:.6em;margin-top:clamp(20px,3vh,36px);padding-bottom:8px;display:flex}.work-status:after{content:"SORTED"}.work-status[data-state=queued]:after{content:"QUEUED"}.work-status[data-state=sorting]:after{content:"SORTING";color:var(--accent)}.work-list{margin-top:clamp(8px,2vh,20px)}.work-row{will-change:transform;position:relative}.work-row>a{grid-template-columns:auto 1fr auto auto auto;align-items:baseline;gap:clamp(14px,2.4vw,40px);padding-block:clamp(18px,2.6vh,32px);display:grid;position:relative}.work-num{color:var(--muted);transition:color var(--t-hover) var(--ease)}.work-title{transition:transform var(--t-hover) var(--ease), color var(--t-hover) var(--ease);display:inline-block}.work-go{opacity:0;transition:opacity var(--t-hover) var(--ease), transform var(--t-hover) var(--ease);transform:translate(-8px)}.work-row>a:hover .work-title,.work-row>a:focus-visible .work-title{transform:translate(clamp(10px,1.6vw,24px))}.work-row>a:hover .work-num,.work-row>a:focus-visible .work-num{color:var(--accent)}.work-row>a:hover .work-go,.work-row>a:focus-visible .work-go{opacity:1;transform:translate(0)}.work-list:hover .work-row>a:not(:hover) .work-title{color:var(--muted)}@media (width<=809.98px){.work-row>a{grid-template-columns:auto 1fr auto;row-gap:6px}.work-cat{grid-column:2}.work-year{grid-column:3}}.exp-inner{grid-template-columns:minmax(120px,1fr) minmax(0,3fr) minmax(120px,1fr);align-items:baseline;gap:clamp(14px,2.4vw,40px);padding-block:clamp(20px,3vh,36px);display:grid}.exp-note{color:var(--muted);grid-column:2}.exp-role{text-align:right}.skill-inner{transition:padding-left var(--t-hover) var(--ease);grid-template-columns:auto minmax(140px,1fr) minmax(0,2fr) auto;align-items:baseline;gap:clamp(12px,2vw,32px);padding-block:clamp(12px,1.6vh,20px);display:grid}.skill-row:hover .skill-inner{padding-left:clamp(8px,1.2vw,18px)}.skill-go{opacity:0;transition:opacity var(--t-hover) var(--ease)}.skill-row:hover .skill-go{opacity:1}.tech-list{row-gap:clamp(14px,2vh,22px)}.tech-item{border-top:1px solid var(--line);align-items:baseline;gap:10px;padding-top:10px;display:flex}@media (width<=809.98px){.exp-inner{grid-template-columns:1fr}.exp-role{text-align:left}.exp-note{grid-column:1}.skill-inner{grid-template-columns:auto 1fr auto}.skill-note{display:none}}.contact-head{margin-bottom:clamp(32px,5vh,64px)}.contact-grid{align-items:start;row-gap:clamp(28px,4vh,48px)}.contact-grid p:first-child{margin-bottom:8px}.contact-mail{word-break:break-word}.case-head-grid{align-items:start;row-gap:clamp(20px,3vh,36px)}.case-facts{row-gap:20px;margin-top:clamp(36px,6vh,72px)}.case-facts dt{margin-bottom:6px}.case-facts dd{margin:0}.machine{row-gap:clamp(20px,3vh,32px)}.machine-stage span{margin:12px 0 6px;display:block}.case-body :is(h2,h3){font-family:var(--font-main);font-size:var(--fs-body);text-transform:uppercase;letter-spacing:.08em;margin:2.4em 0 .8em}.case-body p{margin-bottom:1em}.case-body :is(ul,ol){gap:.5em;margin:0 0 1.4em;display:grid}.case-body li{padding-left:1.2em;position:relative}.case-body li:before{content:"/";color:var(--muted);position:absolute;left:0}.case-stack ul{gap:6px;margin-top:8px;display:grid}.case-next a{gap:10px;padding-top:clamp(24px,4vh,44px);display:grid}.case-next-title{transition:transform var(--t-hover) var(--ease);display:inline-block}.case-next a:hover .case-next-title{transform:translate(clamp(10px,1.6vw,24px))}.cur{z-index:500;pointer-events:none;will-change:transform;--cur-ink:#404040;color:var(--cur-ink);transition:opacity var(--t-micro) var(--ease);position:fixed;top:0;left:0;transform:translate(-200px,-200px)}.cur[data-theme=dark]{--cur-ink:#fff}.cur.is-gone{opacity:0}.cur-ring{border:1px solid var(--cur-ink);opacity:.6;width:56px;height:56px;transition:opacity .26s var(--ease), transform .3s var(--ease);border-radius:50%;margin:-28px 0 0 -28px;position:absolute;top:0;left:0;transform:scale(1);box-shadow:0 0 0 1px #ffffff73}.cur[data-state=project] .cur-ring,.cur[data-state=image] .cur-ring,.cur[data-state=drag] .cur-ring{opacity:0;transform:scale(.7)}.cur.is-active .cur-ring{transform:scale(.86)}.cur-inner{transform-origin:0 0;transition:transform .15s var(--ease);transform:translate(18px,16px)scale(1)}.cur-box{border:1px solid var(--cur-ink);height:26px;font-family:var(--font-tech);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;color:var(--cur-ink);opacity:0;transform-origin:0;transition:opacity .24s var(--ease), transform .28s var(--ease);background:0 0;align-items:center;gap:6px;padding:0 10px;font-size:10px;line-height:1;display:flex;transform:scale(.92)}.cur-pre,.cur-post{color:var(--accent-cur,#055dff)}.cur[data-theme=dark]{--accent-cur:#5c9bff}.cur[data-state=project] .cur-box,.cur[data-state=image] .cur-box,.cur[data-state=drag] .cur-box{opacity:1;transform:scale(1)}.cur.is-active .cur-inner{transform:translate(18px,16px)scale(.82)}@media (prefers-reduced-motion:reduce){.cur,.cur-inner,.cur-box,.work-preview{transition:none!important}}.work-preview{z-index:80;aspect-ratio:4/3;pointer-events:none;will-change:transform;opacity:0;visibility:hidden;transform-origin:50% 100%;width:clamp(200px,19vw,300px);transition:opacity .32s var(--ease), visibility 0s linear .32s, scale .38s var(--ease), translate .38s var(--ease);position:fixed;top:0;left:0;translate:0 8px;scale:.94}.work-preview.is-on{opacity:1;visibility:visible;transition:opacity .38s var(--ease), visibility 0s, scale .42s var(--ease), translate .42s var(--ease);translate:0;scale:1}.work-frame{opacity:0;transition:opacity .22s var(--ease);margin:0;position:absolute;inset:0;overflow:hidden}.work-frame.is-on{opacity:1}.work-frame picture{width:100%;height:100%;display:block}.work-frame img{object-fit:cover;width:100%;height:100%;transform:scale(1.04)}.work-plate{align-content:space-between;width:100%;height:100%;padding:clamp(14px,1.4vw,22px);display:grid}.work-plate-title{align-self:end}html.is-loading{overflow:hidden}.loader{z-index:900;align-items:end;padding-block:clamp(28px,6vh,64px);display:grid;position:fixed;inset:0}.loader-inner{gap:clamp(16px,3vh,28px);width:100%;display:grid}.loader-mark{line-height:1}.loader-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.loader-steps{flex-wrap:wrap;gap:clamp(10px,1.6vw,24px);display:flex}.loader-steps li{opacity:.3;transition:opacity var(--t-micro) var(--ease)}.loader-steps li.is-on{opacity:1}.loader-track{background:var(--line);height:1px}.loader-bar{background:var(--bg);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.loader-pct{font-family:var(--font-mono);justify-self:end}html:not(.js-ready) .loader{display:none}@media (width<=809.98px){.hero{row-gap:clamp(24px,4vh,40px)}.hero-top{row-gap:20px;padding-top:clamp(28px,6vh,64px)}.hero-say{padding-top:0}.hero-foot{row-gap:18px}.hero-scroll{justify-self:start}.work-row>a{padding-block:16px}.section{padding-block:clamp(56px,9vh,96px)}}.case-back{margin-bottom:clamp(20px,3vh,36px);display:inline-flex}.case-back>i{transform:translate(6px)}.case-back:hover>i,.case-back:focus-visible>i{transform:translate(0)}.case-back:hover>span,.case-back:focus-visible>span{transform:translate(4px)}.case-visual{max-width:1672px;margin:0;overflow:hidden}.case-visual picture{display:block}.case-visual img{aspect-ratio:16/9;object-fit:cover;width:100%}.case-plate{aspect-ratio:16/9;align-content:space-between;padding:clamp(20px,3vw,48px);display:grid}.case-plate-title{align-self:center;max-width:16ch}@media (width<=809.98px){.case-visual img,.case-plate{aspect-ratio:4/3}}.progress{z-index:101;pointer-events:none;height:1px;position:fixed;top:56px;left:0;right:0}.progress-bar{background:var(--text);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.odo{vertical-align:baseline;font-variant-numeric:tabular-nums;line-height:1;display:inline-flex}.odo-d{height:1.16em;display:block;overflow:hidden}.odo-s{will-change:transform;display:block}.odo-s>span{height:1.16em;line-height:1.16em;display:block}.odo-fixed{white-space:pre;line-height:1.16em;display:block}[data-motion]{will-change:transform, opacity;isolation:isolate}@media (prefers-reduced-motion:reduce){[data-motion]{will-change:auto;filter:none!important;opacity:1!important;transform:none!important}.odo-s{will-change:auto}}.ba{row-gap:clamp(20px,3vh,32px)}.ba p:first-child{margin-bottom:8px}.case-stack>div+div{margin-top:clamp(20px,3vh,28px)}.case-visual-note{margin-top:10px}.builds{margin-top:clamp(48px,8vh,96px)}.builds>p:first-child{margin-bottom:clamp(16px,2.4vh,24px)}.builds-list{row-gap:clamp(14px,2vh,22px)}.build-item{border-top:1px solid var(--line);align-items:baseline;gap:10px;padding-top:10px;display:flex}.tech-head{margin-bottom:clamp(16px,2.4vh,24px)}.tech-head-second{margin-top:clamp(40px,6vh,72px)}.contact-intro{margin-bottom:clamp(32px,5vh,56px)}.contact-request{margin-top:clamp(48px,8vh,96px)}.contact-request-label{margin:16px 0 8px}.contact-request-cta{margin-top:16px}.hero{position:relative}.hero>.grid{z-index:1;position:relative}.hero-fx{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-fx-canvas{width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.hero-fx{display:none}}.st{z-index:800;pointer-events:none;visibility:hidden;display:flex;position:fixed;inset:0;overflow:hidden}.st[data-on]{visibility:visible}.st-step{background:var(--accent);will-change:transform;border-right:1px solid var(--bg);flex:1 1 0;height:100%;transform:translateY(100%)}.st-step:last-child{border-right:0}@media (prefers-reduced-motion:reduce){.st{display:none}}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}
