@font-face{font-family:aboutFont;src:url(../media/BeVietnamPro_Regular-s.p.25pdsd_g8ntz2.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:aboutFont;src:url(../media/BeVietnamPro_Medium-s.p.3jmk9wm2goi3b.ttf)format("truetype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:aboutFont Fallback;src:local(Arial);ascent-override:90.08%;descent-override:23.87%;line-gap-override:0.0%;size-adjust:111.01%}._45r16W_className{font-family:aboutFont,aboutFont Fallback}._45r16W_variable{--font-about:"aboutFont", "aboutFont Fallback"}
@property --angle-1{syntax:"<angle>";inherits:false;initial-value:-75deg}@property --angle-2{syntax:"<angle>";inherits:false;initial-value:-45deg}.glass-button-wrap{--glass-background:var(--background,var(--paper,#f5f4ef));--glass-foreground:var(--foreground,var(--ink,#20211f));--anim-time:.4s;--anim-ease:cubic-bezier(.25, 1, .5, 1);--border-width:clamp(1px, .0625em, 4px);z-index:2;transform-style:preserve-3d;transition:transform var(--anim-time) var(--anim-ease);position:relative}.glass-button:disabled{opacity:.5;cursor:not-allowed}.glass-button-wrap:has(.glass-button:disabled){cursor:not-allowed}.glass-button:focus-visible{outline-offset:4px;outline:2px solid}.glass-button-demo{--background:var(--paper,#f5f4ef);--foreground:var(--ink,#20211f)}@media (prefers-reduced-motion:reduce){.glass-button-wrap,.glass-button,.glass-button-text,.glass-button-shadow,.glass-button:after,.glass-button-text:after,.glass-button-shadow:after{transition:none!important}.glass-button:is(:hover,:focus-visible,:active){transform:none!important}.glass-button-wrap:has(.glass-button:active){transform:none!important}}.glass-button-wrap:has(.glass-button:active){transform:rotateX(25deg)}.glass-button-shadow{--shadow-cutoff-fix:2em;width:calc(100% + var(--shadow-cutoff-fix));height:calc(100% + var(--shadow-cutoff-fix));top:calc(0% - var(--shadow-cutoff-fix) / 2);left:calc(0% - var(--shadow-cutoff-fix) / 2);filter:blur(clamp(2px,.125em,12px));transition:filter var(--anim-time) var(--anim-ease);pointer-events:none;position:absolute}.glass-button-shadow:after{content:"";background:linear-gradient(180deg, oklch(from var(--glass-foreground) l c h/20%), oklch(from var(--glass-foreground) l c h/10%));width:calc(100% - var(--shadow-cutoff-fix) - .25em);height:calc(100% - var(--shadow-cutoff-fix) - .25em);inset:0;top:calc(var(--shadow-cutoff-fix) - .5em);left:calc(var(--shadow-cutoff-fix) - .875em);box-sizing:border-box;transition:all var(--anim-time) var(--anim-ease);opacity:1;-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;border-radius:9999px;padding:.125em;position:absolute;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.glass-button{-webkit-tap-highlight-color:transparent;-webkit-backdrop-filter:blur(clamp(1px,.125em,4px));backdrop-filter:blur(clamp(1px,.125em,4px));transition:all var(--anim-time) var(--anim-ease);background:linear-gradient(-75deg, oklch(from var(--glass-background) l c h/5%), oklch(from var(--glass-background) l c h/20%), oklch(from var(--glass-background) l c h/5%));box-shadow:inset 0 .125em .125em oklch(from var(--glass-foreground) l c h/5%), inset 0 -.125em .125em oklch(from var(--glass-background) l c h/50%), 0 .25em .125em -.125em oklch(from var(--glass-foreground) l c h/20%), 0 0 .1em .25em inset oklch(from var(--glass-background) l c h/20%), 0 0 oklch(from var(--glass-background) l c h)}.glass-button:is(:hover,:focus-visible){-webkit-backdrop-filter:blur(.01em);backdrop-filter:blur(.01em);box-shadow:inset 0 .125em .125em oklch(from var(--glass-foreground) l c h/5%), inset 0 -.125em .125em oklch(from var(--glass-background) l c h/50%), 0 .15em .05em -.1em oklch(from var(--glass-foreground) l c h/25%), 0 0 .05em .1em inset oklch(from var(--glass-background) l c h/50%), 0 0 oklch(from var(--glass-background) l c h);transform:scale(.975)}.glass-button-text{color:oklch(from var(--glass-foreground) l c h/90%);text-shadow:0em .25em .05em oklch(from var(--glass-foreground) l c h/10%);transition:all var(--anim-time) var(--anim-ease)}.glass-button:is(:hover,:focus-visible) .glass-button-text{text-shadow:.025em .025em .025em oklch(from var(--glass-foreground) l c h/12%)}.glass-button-text:after{content:"";width:calc(100% - var(--border-width));height:calc(100% - var(--border-width));top:calc(0% + var(--border-width) / 2);left:calc(0% + var(--border-width) / 2);box-sizing:border-box;background:linear-gradient(var(--angle-2), transparent 0%, oklch(from var(--glass-background) l c h/50%) 40% 50%, transparent 55%);z-index:3;mix-blend-mode:screen;pointer-events:none;transition:background-position calc(var(--anim-time) * 1.25) var(--anim-ease), --angle-2 calc(var(--anim-time) * 1.25) var(--anim-ease);background-position:0%;background-size:200% 200%;border-radius:9999px;display:block;position:absolute;overflow:clip}.glass-button:is(:hover,:focus-visible) .glass-button-text:after{background-position:25%}.glass-button:active .glass-button-text:after{--angle-2:-15deg;background-position:50% 15%}.glass-button:after{content:"";z-index:1;width:calc(100% + var(--border-width));height:calc(100% + var(--border-width));inset:0;top:calc(0% - var(--border-width) / 2);left:calc(0% - var(--border-width) / 2);padding:var(--border-width);box-sizing:border-box;background:conic-gradient(from var(--angle-1) at 50% 50%, oklch(from var(--glass-foreground) l c h/50%) 0%, transparent 5% 40%, oklch(from var(--glass-foreground) l c h/50%) 50%, transparent 60% 95%, oklch(from var(--glass-foreground) l c h/50%) 100%), linear-gradient(180deg, oklch(from var(--glass-background) l c h/50%), oklch(from var(--glass-background) l c h/50%));transition:all var(--anim-time) var(--anim-ease), --angle-1 .5s ease;box-shadow:inset 0 0 0 calc(var(--border-width) / 2) oklch(from var(--glass-background) l c h/50%);-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;border-radius:9999px;position:absolute;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.glass-button:is(:hover,:focus-visible):after{--angle-1:-125deg}.glass-button:active:after{--angle-1:-75deg}.glass-button-wrap:has(.glass-button:is(:hover,:focus-visible)) .glass-button-shadow{filter:blur(clamp(2px,.0625em,6px))}.glass-button-wrap:has(.glass-button:is(:hover,:focus-visible)) .glass-button-shadow:after{top:calc(var(--shadow-cutoff-fix) - .875em);opacity:1}.glass-button-wrap:has(.glass-button:active) .glass-button-shadow{filter:blur(clamp(2px,.125em,12px))}.glass-button-wrap:has(.glass-button:active) .glass-button-shadow:after{top:calc(var(--shadow-cutoff-fix) - .5em);opacity:.75}.glass-button-wrap:has(.glass-button:active) .glass-button-text{text-shadow:.025em .25em .05em oklch(from var(--glass-foreground) l c h/12%)}.glass-button-wrap:has(.glass-button:active) .glass-button{box-shadow:inset 0 .125em .125em oklch(from var(--glass-foreground) l c h/5%), inset 0 -.125em .125em oklch(from var(--glass-background) l c h/50%), 0 .125em .125em -.125em oklch(from var(--glass-foreground) l c h/20%), 0 0 .1em .25em inset oklch(from var(--glass-background) l c h/20%), 0 .225em .05em oklch(from var(--glass-foreground) l c h/5%), 0 .25em oklch(from var(--glass-background) l c h/75%), inset 0 .25em .05em oklch(from var(--glass-foreground) l c h/15%)}@media (hover:none) and (pointer:coarse){.glass-button:after,.glass-button:is(:hover,:focus-visible):after,.glass-button:active:after{--angle-1:-75deg}.glass-button .glass-button-text:after,.glass-button:active .glass-button-text:after{--angle-2:-45deg}}
.menu-modal{color:#f4f8ff;-webkit-backdrop-filter:blur(24px)saturate(125%);backdrop-filter:blur(24px)saturate(125%);scrollbar-color:#abc7ed66 transparent;background:linear-gradient(145deg,#e6f3ff61,#accfff38 48%,#dceeff24);border:1px solid #eff7ff80;border-radius:22px;box-shadow:inset 0 1px #ffffff80,inset 0 -1px #c1ddff33,0 28px 90px #03101e40}.menu-modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#07172466}.menu-modal{transform-origin:100% 0;overflow:visible}.menu-modal .modal-inner{max-height:inherit;border-radius:inherit;overscroll-behavior:contain;overflow:hidden auto}.menu-curve{fill:#c8e0ff55;pointer-events:none;width:80px;height:100%;position:absolute;top:0;left:-79px}.menu-modal[data-phase=opening],.menu-modal[data-phase=closing]{border-left-color:#0000}.menu-modal[data-phase=opening]::backdrop{animation:.45s ease-out both menu-backdrop-in}.menu-modal[data-phase=closing]::backdrop{animation:.8s ease-in reverse both menu-backdrop-in}.menu-modal[data-phase=closing]{pointer-events:none}.menu-modal[data-phase=opening] .mobile-nav>:is(a,button){animation:.35s cubic-bezier(.22,1,.36,1) both menu-row-in;animation-delay:calc(.12s + var(--menu-order,0) * 60ms)}.menu-modal[data-phase=opening] .landing-logo,.menu-modal[data-phase=opening] .eyebrow{animation:.4s ease-out 80ms both menu-row-in}.menu-modal .landing-logo{color:#fff;gap:8px}.menu-modal .landing-logo>svg{width:48px;height:46px}.menu-modal .landing-logo-type strong{font-size:44px}.menu-modal .landing-logo-type small{font-size:8px}.menu-modal .modal-close{color:#f4f8ff;background:#e9f1ff0d;border:1px solid #e9f1ff33;transition:background .25s,transform .3s,box-shadow .3s;box-shadow:inset 0 1px #ffffff24}.menu-modal .modal-close:is(:hover,:focus-visible){background:#e9f1ff26;transform:rotate(90deg);box-shadow:inset 0 1px #fff5,0 0 18px #91b6ff26}.menu-modal .mobile-nav{gap:4px;margin-block:36px}.menu-modal .mobile-nav>:is(a,button){isolation:isolate;color:#f4f8ff;-webkit-tap-highlight-color:transparent;border-bottom-color:#d3e5ff26;border-radius:10px;width:100%;padding:18px 12px;transition:color .3s,border-color .3s;position:relative}.menu-modal .mobile-nav>:is(a,button):before{content:"";z-index:-1;border-radius:inherit;opacity:0;pointer-events:none;background:linear-gradient(110deg,#dbeaff1f,#e9f1ff0a 60%,#b8d3ff17);border:1px solid #d6e7ff26;transition:opacity .3s,transform .35s;position:absolute;inset:0;transform:scaleX(.96);box-shadow:inset 0 1px #ffffff1f}.menu-modal .mobile-nav>:is(a,button):after{content:"";transform-origin:0;pointer-events:none;background:linear-gradient(90deg,#a3bfff,#e7f2ff88,#0000);height:1px;transition:transform .45s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-1px;left:12px;right:12px;transform:scaleX(0)}.menu-modal .mobile-nav .menu-item-icon{color:#fff;opacity:.8;flex-shrink:0;width:27px;height:25px;transition:transform .35s,opacity .35s}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .menu-item-icon{opacity:1;transform:rotate(-6deg)scale(1.08)}.menu-pending-message{color:#e2edff;font-size:15px;line-height:1.7}.menu-modal .menu-item-label{transition:transform .35s cubic-bezier(.22,1,.36,1)}.menu-modal .menu-letter{transition:transform .6s cubic-bezier(.22,1.5,.36,1);display:inline-block}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .menu-letter{transition-delay:calc(var(--letter-order,0) * 25ms);transform:translate(10px)}.menu-modal .mobile-nav .arrow-icon{color:#b6cfee;transition:transform .35s,color .3s}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible){color:#e0eeff;border-bottom-color:#0000}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible):before{opacity:1;transform:scaleX(1)}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible):after{transform:scaleX(1)}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .menu-item-label{transform:translate(-10px)}.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .arrow-icon{color:#fff;transform:translate(4px,-4px)}.menu-modal .mobile-nav>:is(a,button):active:before{background:#dbeaff29}.menu-modal .eyebrow{color:#b0c7e0}.menu-modal :focus-visible{outline-offset:4px;outline:2px solid #a3bfff}.landing-header .menu-toggle{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#e9f1ff0a;border:1px solid #e9f1ff2e;border-radius:50%;align-items:center;width:44px;height:44px;transition:background .3s,box-shadow .3s;box-shadow:inset 0 1px #ffffff1f}.landing-header .menu-toggle span{transition:width .3s,transform .3s}.landing-header .menu-toggle span:last-child{align-self:center;margin-right:0;transform:translate(3px)}.landing-header .menu-toggle:is(:hover,:focus-visible){background:#e9f1ff26;box-shadow:inset 0 1px #fff5,0 0 18px #91b6ff26}.landing-header .menu-toggle:is(:hover,:focus-visible) span:last-child{width:23px;transform:translate(0)}@keyframes menu-row-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes menu-backdrop-in{0%{opacity:0}to{opacity:1}}@media (max-width:600px){.menu-modal{-webkit-backdrop-filter:blur(16px)saturate(120%);backdrop-filter:blur(16px)saturate(120%);border-radius:18px}.menu-modal .landing-logo>svg{width:40px;height:38px}.menu-modal .landing-logo-type strong{font-size:36px}.menu-modal .landing-logo-type small{font-size:6px}.menu-modal .mobile-nav{margin-block:28px}.menu-modal .mobile-nav>:is(a,button){gap:16px;padding:16px 10px;font-size:clamp(26px,6vw,32px)}}@media (prefers-reduced-motion:reduce){.menu-curve{display:none}.menu-modal[open]{animation:none}.menu-modal .modal-close:is(:hover,:focus-visible),.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .menu-item-label,.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .arrow-icon,.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .menu-item-icon,.menu-modal .mobile-nav>:is(a,button):is(:hover,:focus-visible) .menu-letter{transform:none}}
@font-face{font-family:footerFont;src:url(../media/BeVietnamPro_Regular-s.25pdsd_g8ntz2.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:footerFont;src:url(../media/BeVietnamPro_Medium-s.3jmk9wm2goi3b.ttf)format("truetype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:footerFont Fallback;src:local(Arial);ascent-override:90.08%;descent-override:23.87%;line-gap-override:0.0%;size-adjust:111.01%}._Cukgq_className{font-family:footerFont,footerFont Fallback}._Cukgq_variable{--font-footer:"footerFont", "footerFont Fallback"}
.engineering-footer{--footer-blue:#254e7e;--footer-muted:#5f7691;isolation:isolate;min-height:max(440px,65svh);color:var(--footer-blue);background:0 0;flex-direction:column;margin-top:-1px;display:flex;position:relative;overflow:clip}.engineering-footer-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#f4f8fced,#e8f0f9e6);border-top:1px solid #ffffffb3;margin-top:auto;box-shadow:0 -12px 50px #102f4c0a}.engineering-footer-inner{width:100%;max-width:1600px;padding:44px var(--gutter) 36px;margin-inline:auto}.engineering-footer-grid{grid-template-columns:minmax(280px,.6fr) minmax(0,1.6fr);align-items:center;gap:48px;display:grid}.engineering-footer-brand .landing-logo{gap:9px}.engineering-footer-brand .landing-logo>svg{width:clamp(55px,5vw,70px);height:auto}.engineering-footer-brand .landing-logo-type strong{font-size:clamp(50px,4.5vw,64px)}.engineering-footer-brand .landing-logo-type small{color:#567db5;margin-top:8px;font-size:9px}.engineering-footer-contact{min-width:0;font-style:normal;font-family:var(--font-footer), "Yu Gothic", sans-serif;letter-spacing:.005em;text-align:center;flex-direction:column;align-items:center;gap:14px;font-size:15px;font-weight:400;line-height:1.85;display:flex}.engineering-footer-contact p{overflow-wrap:anywhere;margin:0}.engineering-footer-contact strong{font-weight:500}.engineering-footer-contact a{font-variant-numeric:tabular-nums;font-weight:500}.engineering-footer a:focus-visible{outline-offset:5px;outline:2px solid #5684be}.engineering-footer-contact a:hover{text-underline-offset:4px;text-decoration:underline}.footer-landscape{position:relative}.footer-landscape-art{aspect-ratio:3.6;position:relative;overflow:hidden}.footer-landscape-canvas{aspect-ratio:3;position:absolute;inset:auto 0 0}.footer-landscape-canvas>img{width:100%;height:auto;display:block}.footer-landscape-art:after{content:"";pointer-events:none;background:linear-gradient(#f3f6fa 0%,#0000 18% 88%,#f3f6fa 100%);position:absolute;inset:0}.engineering-footer-bottom{margin:0 var(--gutter);font-family:var(--font-footer), "Yu Gothic", sans-serif;color:var(--footer-muted);border-top:1px solid #254e7e22;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:18px;padding:23px 0;font-size:11px;line-height:1.6;display:flex;position:relative}.engineering-footer-bottom p{margin:0}.engineering-footer-bottom>a{color:var(--footer-blue);align-items:center;gap:12px;display:flex}.engineering-footer-bottom>a svg{width:14px;height:14px;transition:transform .3s}.engineering-footer-bottom>a:hover svg{transform:translate(2px,-2px)}@media (max-width:800px){.engineering-footer-inner{padding-top:36px}.engineering-footer-grid{grid-template-columns:1fr;gap:28px}.engineering-footer-brand{text-align:center}.engineering-footer-contact{gap:12px;font-size:14px}}@media (max-width:600px){.engineering-footer{min-height:max(520px,68svh)}.engineering-footer-panel{-webkit-backdrop-filter:none;backdrop-filter:none}.engineering-footer-inner{padding-bottom:22px}.engineering-footer-brand .landing-logo>svg{width:53px;height:auto}.engineering-footer-brand .landing-logo-type strong{font-size:48px}.engineering-footer-brand .landing-logo-type small{font-size:8px}.engineering-footer-contact{font-size:13px}.footer-landscape-art{width:170%;margin-left:-35%}.engineering-footer-bottom{gap:15px;padding-block:20px;font-size:10px}}@media (prefers-reduced-motion:reduce){.engineering-footer a,.engineering-footer svg{transition:none}}
.page-intro{z-index:1000;isolation:isolate;color:#fff;background:#182933;place-items:center;animation:0s 5s forwards intro-failsafe;display:grid;position:fixed;inset:0;overflow:hidden}.page-intro-photo{z-index:-2;object-fit:cover;object-position:center 58%;animation:4s ease-out both intro-photo-drift}.page-intro-shade{z-index:-1;background:linear-gradient(#091b2a66,#0c1b2a66 50%,#061624b3);position:absolute;inset:0}.page-intro-brand{text-align:center;width:min(660px,100vw - 64px);position:relative}.page-intro-logo-frame{color:#fff;filter:drop-shadow(0 3px 18px #06162455)}.page-intro-logo-frame .landing-logo{justify-content:center;gap:10px;width:100%}.page-intro-logo-frame .landing-logo>svg{flex-shrink:0;width:clamp(68px,9vw,118px);height:auto}.page-intro-logo-frame .landing-logo-type strong{font-size:clamp(64px,8.2vw,112px)}.page-intro-logo-frame .landing-logo-type small{color:#a3bfff;font-size:clamp(10px,1vw,17px)}.page-intro-rule{background:#adcaff40;width:100px;height:1px;margin:30px auto 0;overflow:hidden}.page-intro-rule span{background:#b6cfff;width:45%;height:100%;animation:1.3s ease-in-out infinite intro-rule-flow;display:block}.page-intro-corner{letter-spacing:.24em;color:#e2edffcc;font-size:9px;font-weight:400;position:absolute;bottom:34px}.page-intro-corner-start{left:40px}@keyframes intro-photo-drift{0%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes intro-rule-flow{0%{transform:translate(-110%)}to{transform:translate(330%)}}@media (max-width:600px){.page-intro-brand{width:min(390px,100vw - 32px)}.page-intro-photo{animation:none}.page-intro-logo-frame .landing-logo>svg{width:clamp(52px,16vw,68px)}.page-intro-logo-frame .landing-logo-type strong{font-size:clamp(50px,16vw,64px)}.page-intro-logo-frame .landing-logo-type small{font-size:clamp(7px,2vw,10px)}.page-intro-corner{letter-spacing:.1em;font-size:7px;bottom:26px}.page-intro-corner-start{left:20px}}@keyframes intro-failsafe{to{visibility:hidden;pointer-events:none}}@media (prefers-reduced-motion:reduce){.page-intro{display:none}}
