@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
.button-like-module__ecx4iq__buttonLike{border:2px solid var(--color-main);border-radius:var(--radius-xs);cursor:pointer;justify-content:center;align-items:center;line-height:1;display:inline-flex}.button-like-module__ecx4iq__small{padding:6px var(--space-3);font-size:.85rem}.button-like-module__ecx4iq__medium{padding:var(--space-2)var(--space-4);font-size:1rem}.button-like-module__ecx4iq__large{padding:var(--space-3)20px;font-size:1.25rem}.button-like-module__ecx4iq__primary{background:var(--color-main);color:#fff}.button-like-module__ecx4iq__secondary{color:var(--color-main);background:0 0}
:root{--color-toast-success:#2864c8cc;--color-toast-error:#8c3c50cc}.Toast-module__rLmbnq__root{bottom:var(--height-footer);right:var(--space-5);z-index:1000;padding:var(--space-3)var(--space-4);border-radius:var(--radius-sm);color:#fff;opacity:0;pointer-events:none;font-size:.9rem;font-weight:600;animation:2.2s forwards Toast-module__rLmbnq__toast;position:fixed;transform:translateY(8px);box-shadow:0 8px 20px #00000026}.Toast-module__rLmbnq__visible{opacity:1;transform:translateY(0)}@keyframes Toast-module__rLmbnq__toast{0%{opacity:0;transform:translateY(8px)}10%{opacity:1;transform:translateY(0)}80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}.Toast-module__rLmbnq__success{background:var(--color-toast-success)}.Toast-module__rLmbnq__error{background:var(--color-toast-error)}
.icon-module__xfsgHa__icon{display:inline-block}.icon-module__xfsgHa__icon svg{width:100%;height:100%}
.Item-module__xub9-W__body{padding:var(--space-2)var(--space-5)var(--space-4);gap:var(--space-7);display:grid}.Item-module__xub9-W__content{gap:var(--space-5);display:grid}.Item-module__xub9-W__section{gap:var(--space-4);display:grid}@media (max-width:1024px){.Item-module__xub9-W__body{padding-inline:var(--space-4)}}@media (max-width:768px){.Item-module__xub9-W__body{padding-inline:var(--space-2)}}
.Link-module__4dIPza__link{text-decoration:none}.Link-module__4dIPza__text{color:var(--color-main)}
.QrCode-module__QfVzrW__root{background:#fff;justify-items:center;display:grid}.QrCode-module__QfVzrW__title{color:var(--color-main);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.9rem;font-weight:700}.QrCode-module__QfVzrW__image{display:block}.QrCode-module__QfVzrW__description{text-align:center;font-size:.85rem}.QrCode-module__QfVzrW__small{padding:var(--space-1);border-radius:var(--radius-xs);gap:var(--space-2)}.QrCode-module__QfVzrW__medium{padding:var(--space-2);border-radius:var(--radius-sm);gap:var(--space-3)}.QrCode-module__QfVzrW__large{padding:var(--space-4);border-radius:var(--radius-lg);gap:var(--space-4)}
.Title-module__KvIkNa__title{margin:0;padding:0;font-weight:700}.Title-module__KvIkNa__section{text-transform:uppercase;letter-spacing:.2em;padding-block:var(--space-2);font-size:1.3rem}.Title-module__KvIkNa__small{font-size:1rem}.Title-module__KvIkNa__center{text-align:center}
.TechStack-module__dpx2-G__techList{gap:var(--space-1);flex-wrap:wrap;padding:0;list-style:none;display:flex}.TechStack-module__dpx2-G__techItem{padding:var(--space-1)10px;border:thin solid var(--color-main);border-radius:var(--radius-full);font-size:.7rem}
.Section-module__iFcgTq__is-grow{animation:.8s ease-out Section-module__iFcgTq__grow}@keyframes Section-module__iFcgTq__grow{0%{box-shadow:none;background:0 0}50%{box-shadow:0 0 0 1px var(--color-highlight),0 0 12px var(--color-highlight),0 0 24px var(--color-highlight-strong);background:var(--color-highlight-soft)}to{box-shadow:none;background:0 0}}.Section-module__iFcgTq__section{border-radius:var(--radius-lg);padding:var(--space-5)var(--space-4);scroll-margin-top:var(--height-navigation);position:relative}body[data-section=about] #Section-module__iFcgTq__about,body[data-section=timeline] #Section-module__iFcgTq__timeline,body[data-section=works] #Section-module__iFcgTq__works,body[data-section=contact] #Section-module__iFcgTq__contact{background:var(--color-highlight-soft)}@media (hover:hover){.Section-module__iFcgTq__section:hover{animation:.8s ease-out Section-module__iFcgTq__grow}}@media (max-width:1024px){.Section-module__iFcgTq__section{padding:var(--space-4)var(--space-3)}}@media (max-width:768px){.Section-module__iFcgTq__section{padding:var(--space-3)var(--space-1)}}
.Stack-module__6rbBea__stack{margin:0;padding:0;list-style:none;display:grid}.Stack-module__6rbBea__item{padding-block:var(--space-2)var(--space-4);gap:var(--space-4);display:grid}.Stack-module__6rbBea__item:first-of-type{padding-top:0}
.TwoColumn-module__4szgvW__twoColumn{grid-template-columns:var(--columns);gap:var(--gap);display:grid}@media (max-width:1024px){.TwoColumn-module__4szgvW__twoColumn{gap:var(--gap-tablet)}.TwoColumn-module__4szgvW__responsive{grid-template-columns:1fr}}@media (max-width:768px){.TwoColumn-module__4szgvW__twoColumn{gap:var(--gap-mobile)}}
.About-module__ujenga__stackItem{gap:0}.About-module__ujenga__about p{margin-inline:0;margin-block:0 var(--space-4);max-width:var(--max-width-text);line-height:1.9}.About-module__ujenga__about p:has(br){margin-bottom:var(--space-5)}.About-module__ujenga__about strong{color:var(--color-main);margin-inline:var(--space-2);font-weight:600}.About-module__ujenga__about p.About-module__ujenga__lead{margin-bottom:var(--space-5);font-size:1.05rem;font-weight:500}@media (min-width:768px){.About-module__ujenga__break{display:inline}.About-module__ujenga__break:after{content:"\a ";white-space:pre}}
.ProfileLinks-module__bh_yNW__links{gap:var(--space-4);margin-top:2rem;padding:0;list-style:none;display:flex}.ProfileLinks-module__bh_yNW__profileLink{width:100px;font-weight:600}
.Hero-module__fkmREa__hero{padding:var(--space-8)var(--space-4)}.Hero-module__fkmREa__hero h1{margin:0;font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1.2}.Hero-module__fkmREa__hero p{margin-top:1.5rem;font-size:1.1rem}@media (max-width:1024px){.Hero-module__fkmREa__hero{padding:var(--space-6)var(--space-3)}}@media (max-width:768px){.Hero-module__fkmREa__hero{padding:var(--space-5)var(--space-2)}}
.SectionGroup-module__ubonUa__container{gap:var(--space-5);display:grid}
.Company-module__9nMgHG__root{position:relative}.Company-module__9nMgHG__lineArea{justify-content:center;display:flex;position:relative}.Company-module__9nMgHG__root:last-child .Company-module__9nMgHG__lineArea:after{background:linear-gradient(var(--color-main)0%,var(--color-main)75%,transparent 100%)}.Company-module__9nMgHG__year{margin-top:var(--space-1);color:var(--color-main);font-weight:700}.Company-module__9nMgHG__lineArea:after{content:"";top:calc(1rem + var(--space-4));background:var(--color-main);width:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.Company-module__9nMgHG__content{gap:var(--space-6)}.Company-module__9nMgHG__meta{flex-direction:column;margin:0;display:flex}.Company-module__9nMgHG__companyName{font-weight:500}.Company-module__9nMgHG__period{font-size:.9rem}.Company-module__9nMgHG__projectList{gap:var(--space-7);margin:0;padding:0;list-style:none;display:grid}
.ProjectItem-module__3-SjWq__header{flex-direction:column;justify-content:center;display:flex}.ProjectItem-module__3-SjWq__title{font-weight:400}.ProjectItem-module__3-SjWq__period{margin:0;font-size:.9rem}.ProjectItem-module__3-SjWq__description{margin:0}.ProjectItem-module__3-SjWq__highlights{flex-wrap:wrap;margin:0;padding:0;font-size:.9rem;list-style:none;display:inline-flex}.ProjectItem-module__3-SjWq__highlights>li:after{content:"/";margin-inline:var(--space-2);color:var(--color-text-secondary)}.ProjectItem-module__3-SjWq__highlights>li:last-child:after{display:none}
.Card-module___lEeAG__media{gap:var(--space-2);flex-direction:column;align-items:center;display:flex}.Card-module___lEeAG__content{border-radius:var(--radius-lg);background:#ffffffd9;box-shadow:0 4px 12px #0000000a}.Card-module___lEeAG__title{color:var(--color-main)}.Card-module___lEeAG__description{margin:var(--space-2)0 0}.Card-module___lEeAG__highlights{gap:var(--space-2);padding:0;list-style:none;display:grid}.Card-module___lEeAG__highlights li{align-items:flex-start;gap:var(--space-2);display:flex}.Card-module___lEeAG__highlightIcon{color:var(--color-blue-200);flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.1rem}.Card-module___lEeAG__links{gap:var(--space-2);padding:0;list-style:none;display:flex}
.Thumbnail-module__xLWvAq__root{border-radius:var(--radius-lg);background:var(--color-wave-base);width:100px;height:200px;margin-top:var(--space-1);position:relative;overflow:hidden}.Thumbnail-module__xLWvAq__waveBack,.Thumbnail-module__xLWvAq__waveFront{pointer-events:none;width:100%;position:absolute;left:0}.Thumbnail-module__xLWvAq__waveBack{height:60%;fill:var(--color-wave-back);filter:blur(.5px);top:45%}.Thumbnail-module__xLWvAq__waveFront{height:60%;fill:var(--color-wave-front);top:55%}
.Badge-module__ZvV8Sq__badge{width:fit-content;padding:var(--space-1)var(--space-3);border-radius:var(--radius-full);letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;margin:0;font-size:.75rem;font-weight:600;line-height:1;display:flex}.Badge-module__ZvV8Sq__release{color:var(--color-main);border-color:var(--color-main)}.Badge-module__ZvV8Sq__inProgress{color:var(--color-blue-300);border-color:var(--color-blue-300)}.Badge-module__ZvV8Sq__planning{color:var(--color-text-secondary);border-color:var(--color-text-secondary)}
.Home-module__UokeAq__home{gap:var(--space-6);display:grid}.Home-module__UokeAq__twoColumn{align-items:start}@media (max-width:768px){.Home-module__UokeAq__home{gap:var(--space-4)}}@media (max-width:480px){.Home-module__UokeAq__home{gap:var(--space-4)}}
.Contact-module__lPPloW__twoColumn{align-items:flex-start}.Contact-module__lPPloW__content{gap:var(--space-1);display:grid}.Contact-module__lPPloW__list{gap:var(--space-2);margin:0;display:grid}.Contact-module__lPPloW__term{color:var(--color-main);font-size:.9rem;font-weight:700}.Contact-module__lPPloW__email{overflow-wrap:anywhere;margin:0}.Contact-module__lPPloW__actions{align-items:center;gap:var(--space-2);display:flex}.Contact-module__lPPloW__qrArea{display:none}@media (min-width:1024px){.Contact-module__lPPloW__qrArea{display:block}}
