html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;padding:0}#root,body{min-height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (max-width:768px){*{-webkit-tap-highlight-color:transparent}}.copyright-header{bottom:8px;color:#ffffffbf;font-size:11px;font-weight:700;left:12px;letter-spacing:1px;pointer-events:none;position:fixed;text-shadow:0 1px 2px #0009;-webkit-user-select:none;user-select:none;white-space:pre-line;z-index:999}.home{height:100vh;overflow:hidden;position:relative;width:100vw}.map-cover{-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;inset:0;object-fit:cover;transform:translateZ(0);will-change:transform;z-index:1}.map-cover,.map-logical{position:absolute;width:100%}.map-logical{aspect-ratio:1778/996;left:50%;max-height:100%;top:50%;transform:translate(-50%,-50%);z-index:2}@supports not (aspect-ratio:1778/996){.map-logical{height:0;padding-bottom:56.02%;position:relative;width:100%}.map-logical>*{inset:0;position:absolute}}.map-viewport{overflow:hidden}.map,.map-viewport{height:100%;position:relative;width:100%}.map{aspect-ratio:1778/996;margin:auto}.map>img{height:100%;object-fit:contain;width:100%}.vehicles-container{height:100%;inset:0;width:100%;z-index:20}.oto,.vehicles-container{pointer-events:none;position:absolute}.oto{height:auto;opacity:0;width:150px}.oto-1{animation:drive-path-1 20s linear infinite;offset-path:path("M 65.2% 95.4% L -19.5% 12%")}.oto-1,.oto-2{offset-rotate:0deg}.oto-2{animation:drive-path-2 20s linear infinite;offset-path:path("M 1.2% 122.5% L 124.6% 2%")}@keyframes drive-path-1{0%{offset-distance:0;opacity:0}5%{opacity:1}95%{opacity:1}to{offset-distance:100%;opacity:0}}@keyframes drive-path-2{0%{offset-distance:0;opacity:0}5%{opacity:1}95%{opacity:1}to{offset-distance:100%;opacity:0}}.hotspot{background:linear-gradient(180deg,#1e8cd2,#0e73ba 60%,#085a96);border-radius:50% 50% 50% 0;box-shadow:0 4px 12px #00000059;color:#fff;cursor:pointer;font-size:20px;font-weight:700;height:45px;position:absolute;text-align:center;transform:translate(-50%,-100%) rotate(-45deg);transition:transform .25s ease,opacity .25s ease;width:45px;z-index:30}.hotspot:after{align-items:center;content:attr(data-label);display:flex;inset:0;justify-content:center;position:absolute;transform:rotate(45deg)}.hotspot:hover{transform:translate(-50%,-100%) rotate(-45deg) scale(1.15)}.hotspot-group{cursor:pointer;margin:-60px -30px -10px;padding:60px 30px 10px;position:absolute;z-index:30}.hotspot-group .hotspot{position:relative;transition:opacity .25s ease}.hotspot-group:hover .hotspot{opacity:0}.hotspot-tooltip{background:#fff;border:2px solid #0e73ba;border-radius:8px;bottom:60%;box-shadow:0 2px 8px #0000002e;color:#0e73ba;font-size:13px;font-weight:700;left:30%;opacity:0;padding:6px 14px;pointer-events:none;transition:opacity .25s ease;white-space:nowrap;z-index:40}.hotspot-tooltip,.hotspot-tooltip:after{position:absolute;transform:translateX(-50%)}.hotspot-tooltip:after{border:7px solid #0000;border-top-color:#0e73ba;content:"";left:50%;top:100%}.hotspot-group:hover .hotspot-tooltip{opacity:1;pointer-events:auto}.hotspot.year{opacity:0;pointer-events:none;transform:translate(-50%,-100%) rotate(-45deg) scale(.6)}.hotspot.year:hover{opacity:1;pointer-events:auto;transform:translate(-50%,-100%) rotate(-45deg) scale(1)}.hotspot-pos-a{left:49.18%;top:18.65%}.hotspot-pos-b{left:15.74%;top:44.34%}.hotspot-pos-c{left:26.53%;top:27.69%}.hotspot-group .hotspot{animation:hotspotFloat 2.4s ease-in-out infinite}@keyframes hotspotFloat{0%{transform:translate(-50%,-100%) rotate(-45deg) translateY(0)}50%{transform:translate(-50%,-100%) rotate(-45deg) translateY(-6px)}to{transform:translate(-50%,-100%) rotate(-45deg) translateY(0)}}.year-hover{height:36px;left:33.33%;position:absolute;top:63.47%;transform:translate(-50%,-50%);width:36px;z-index:60}.year-hover:before{background:#0000;content:"";inset:-80px;pointer-events:auto;position:absolute}.tap-icon{animation:tapClickShake 1.3s infinite;filter:drop-shadow(0 12px 18px rgba(0,0,0,.4));height:auto;left:100%;max-width:none;opacity:1;pointer-events:none;position:absolute;top:25px;transform:translateX(-50%) rotate(-35deg);transform-origin:20% 20%;visibility:visible;width:60px;z-index:60}@keyframes tapPulse{0%{opacity:.7;transform:translateX(-50%) rotate(-35deg) scale(1)}70%{opacity:1;transform:translateX(-50%) rotate(-35deg) scale(1.15)}to{opacity:.7;transform:translateX(-50%) rotate(-35deg) scale(1)}}@keyframes tapClick{0%{opacity:.85;transform:translateX(-50%) rotate(-35deg) scale(1)}40%{opacity:1;transform:translateX(-50%) rotate(-35deg) scale(.9)}60%{transform:translateX(-50%) rotate(-35deg) scale(1.05)}to{opacity:.85;transform:translateX(-50%) rotate(-35deg) scale(1)}}@keyframes tapClickShake{0%{opacity:.8;transform:translateX(-50%) rotate(-35deg) scale(1)}30%{opacity:1;transform:translateX(-50%) rotate(-38deg) scale(.9)}50%{transform:translateX(-50%) rotate(-32deg) scale(1.05)}70%{transform:translateX(-50%) rotate(-36deg) scale(1)}to{opacity:.8;transform:translateX(-50%) rotate(-35deg) scale(1)}}.building-image{cursor:pointer;object-fit:contain;pointer-events:auto;position:absolute}.building-image,.building-image.toa-a{transition:transform .3s ease;z-index:25}.building-image.toa-a{animation:none;height:auto;left:45.5%;object-position:center;pointer-events:none;top:3%;transform:translate(-49.8%);width:39%}.building-clickable.toa-a-clickable{cursor:pointer;height:40%;left:50%;position:absolute;top:15%;transform:translate(-50%);transition:all .3s ease;width:22%;z-index:26}.building-clickable.toa-a-clickable:hover~.building-image.toa-a{transform:translate(-49.8%) scale(1.05)}.building-image.toa-b{animation:none;height:auto;left:11%;object-position:center;pointer-events:none;top:39.2%;transform:translate(-50%);transition:transform .3s ease;width:21%;z-index:23}.building-clickable.toa-b-clickable{cursor:pointer;height:18%;left:12%;position:absolute;top:42%;transform:translate(-50%);transition:all .3s ease;width:12%;z-index:24}.building-clickable.toa-b-clickable:hover~.building-image.toa-b{transform:translate(-50%) scale(1.05)}.building-image.toa-c{animation:none;height:auto;left:24.5%;object-position:center;pointer-events:none;top:14%;transform:translate(-50%);transition:transform .3s ease;width:25%;z-index:22}.building-clickable.toa-c-clickable{cursor:pointer;height:18%;left:23%;position:absolute;top:26%;transform:translate(-50%);transition:all .3s ease;width:12%;z-index:22}.building-clickable.toa-c-clickable:hover~.building-image.toa-c{transform:translate(-50%) scale(1.05)}.building-image.toa-p{cursor:default;left:73.4%;top:57.7%;transform:translate(-50%);width:14.5%}.building-image.toa-nho,.building-image.toa-p{animation:none;height:auto;object-position:center;pointer-events:none;transition:none}.building-image.toa-nho{width:7%}.building-image.toa-nho-1{left:3%;top:75%;transform:translate(-50%)}.building-image.toa-nho-2{left:7%;top:80%;transform:translate(-50%)}.building-image.toa-nho-3{left:98%;top:55%;transform:translate(-50%)}.building-image.toa-nho-4{left:85%;top:70%;transform:translate(-50%)}.building-image.toa-nho-5{left:80%;top:77%;transform:translate(-50%)}.building-image.toa-nho-6{left:80%;top:95%;transform:translate(-50%)}.building-image.so2-image{height:auto;left:30%;object-position:center;pointer-events:none;top:55%;transform:translate(-50%);transition:transform .3s ease;width:15%;z-index:27}.building-clickable.so2-clickable{cursor:pointer;height:25%;left:33%;position:absolute;top:52%;transform:translate(-50%);transition:all .3s ease;width:15%;z-index:28}.building-clickable.so2-clickable:hover~.building-image.so2-image{transform:translate(-50%) scale(1.05)}.building-image.hangcay-image{left:59%;top:53.2%;width:12%;z-index:52}.building-image.cay-1,.building-image.hangcay-image{height:auto;object-position:center;pointer-events:none;transform:translate(-50%)}.building-image.cay-1{left:24.5%;top:56%;width:4.5%;z-index:31}@media (max-width:768px){.building-image.hangcay-image{left:59%;top:47%;width:14%}.building-image.toa-p{width:14%}.building-image.toa-b{left:11.6%;width:21.5%}.hotspot{font-size:12px;height:28px;width:28px}.hotspot-group{margin:-40px -18px -8px;padding:40px 18px 8px}.hotspot-tooltip{border-radius:5px;border-width:1.5px;font-size:10px;padding:3px 8px}.tap-icon{width:36px}.year-hover{height:36px;width:36px}.year-hover:before{inset:-50px}.oto-layer{z-index:21!important}.building-image.toa-nho-1{left:5%;top:76%}.building-image.toa-nho-2,.building-image.toa-nho-6{display:none}}@media (prefers-reduced-motion:reduce){.hotspot-group .hotspot,.oto-1,.oto-2,.tap-icon{animation:none}.oto-1,.oto-2{opacity:0}}.floating-menu-container{display:flex;gap:12px;position:fixed;right:24px;top:24px;z-index:9999}.floating-btn{align-items:center;border:none;border-radius:12px;box-shadow:0 4px 20px #00000026;cursor:pointer;display:flex;height:52px;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:52px}.floating-btn:hover{box-shadow:0 6px 24px #0003;transform:translateY(-2px)}.floating-btn:active{transform:translateY(0)}.audio-btn{background:linear-gradient(135deg,#0a4d7c,#1565a8);color:#fff}.audio-btn.playing{animation:pulse 2s infinite;background:linear-gradient(135deg,#d4af37,#f4e4bc);color:#0a4d7c}@keyframes pulse{0%,to{box-shadow:0 4px 20px #d4af3766}50%{box-shadow:0 4px 30px #d4af37b3}}.menu-btn{background:linear-gradient(135deg,#0a4d7c,#1565a8)}.menu-btn.active{background:linear-gradient(135deg,#083d63,#0a4d7c)}.menu-icon{display:flex;flex-direction:column;gap:5px;width:24px}.menu-icon span{background:#fff;border-radius:2px;display:block;height:3px;transition:all .3s ease}.menu-btn.active .menu-icon span:first-child{transform:rotate(45deg) translate(6px,6px)}.menu-btn.active .menu-icon span:nth-child(2){opacity:0}.menu-btn.active .menu-icon span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.menu-overlay{animation:fadeIn .3s ease;background:#00000080;inset:0;position:fixed;z-index:-1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.menu-dropdown{animation:slideDown .3s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:20px;box-shadow:0 20px 60px #00000040;overflow:hidden;position:absolute;right:0;top:64px;width:320px}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.menu-header{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #e2e8f0;display:flex;justify-content:center;padding:20px}.menu-logo{height:50px;width:auto}.menu-nav{padding:16px 0}.menu-item{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;gap:12px;padding:14px 24px;text-align:left;transition:all .2s ease;width:100%}.menu-item:hover{background:linear-gradient(90deg,#0a4d7c14,#0000)}.menu-item.active{background:linear-gradient(90deg,#0a4d7c1f,#0000)}.menu-icon-pin{align-items:center;color:#0a4d7c;display:flex;flex-shrink:0}.menu-item-text{color:#0a4d7c;font-family:Roboto,sans-serif;font-size:15px;font-weight:600;letter-spacing:.5px}.menu-social{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-top:1px solid #e2e8f0;gap:20px;padding:20px}.menu-social,.social-link{display:flex;justify-content:center}.social-link{align-items:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #0000001a;color:#0a4d7c;height:44px;transition:all .3s ease;width:44px}.social-link:hover{background:#0a4d7c;box-shadow:0 4px 12px #0a4d7c4d;color:#fff;transform:translateY(-3px)}@media (max-width:768px){.floating-menu-container{gap:10px;right:16px;top:16px}.floating-btn{border-radius:10px;height:46px;width:46px}.menu-dropdown{right:-8px;width:280px}.menu-item{padding:12px 20px}.menu-item-text{font-size:14px}}@media (max-width:480px){.floating-menu-container{gap:8px;right:12px;top:12px}.floating-btn{height:42px;width:42px}.menu-icon{gap:4px;width:20px}.menu-icon span{height:2.5px}.menu-dropdown{right:0;top:56px;width:calc(100vw - 24px)}.menu-logo{height:40px}.menu-item{gap:10px;padding:12px 16px}.menu-item-text{font-size:13px}.menu-icon-pin svg{height:20px;width:20px}}.splash-screen{align-items:center;background:linear-gradient(160deg,#081e30,#0a3550 40%,#0e4260);display:flex;inset:0;justify-content:center;overflow:hidden;position:fixed;transition:opacity .8s ease,visibility .8s ease;z-index:9999}.splash-fade-out{opacity:0;visibility:hidden}.splash-particles{inset:0;pointer-events:none;position:absolute;z-index:0}.splash-particle{animation:particleFloat linear infinite;background:#1ebedc80;border-radius:50%;bottom:-10px;opacity:0;position:absolute}@keyframes particleFloat{0%{opacity:0;transform:translateY(0) scale(0)}10%{opacity:.8;transform:translateY(0) scale(1)}90%{opacity:.3}to{opacity:0;transform:translateY(-100vh) scale(.3)}}.splash-med-icon{animation:medIconFloat linear infinite;bottom:-30px;color:#fff9;filter:grayscale(1) brightness(10);opacity:0;position:absolute}@keyframes medIconFloat{0%{opacity:0;transform:translateY(0) rotate(0deg) scale(0)}8%{opacity:.45;transform:translateY(0) rotate(0deg) scale(1)}50%{opacity:.3;transform:translateY(-50vh) rotate(180deg) scale(1)}to{opacity:0;transform:translateY(-100vh) rotate(1turn) scale(.5)}}.splash-content{align-items:center;animation:splashZoomIn .8s ease-out;display:flex;flex-direction:column;gap:16px;position:relative;z-index:1}@keyframes splashZoomIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.splash-rings{height:400px;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:400px}.splash-ring{border:1px solid #1ebedc26;border-radius:50%;inset:0;position:absolute}.splash-ring-1{animation:ringExpand 2.5s ease-out infinite}.splash-ring-2{animation:ringExpand 2.5s ease-out .5s infinite}.splash-ring-3{animation:ringExpand 2.5s ease-out 1s infinite}@keyframes ringExpand{0%{opacity:.5;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}.splash-badge{animation:badgeDrop .6s cubic-bezier(.34,1.56,.64,1) .3s both;background:linear-gradient(135deg,#1490b8,#0b6e92);border-radius:20px;box-shadow:0 4px 15px #1490b880;color:#fff;font-size:14px;font-weight:800;letter-spacing:4px;overflow:hidden;padding:6px 22px;position:relative;z-index:2}.splash-badge-text{position:relative;z-index:1}.splash-badge-shine{animation:shineSlide 2s ease-in-out 1s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes badgeDrop{0%{opacity:0;transform:translateY(-30px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shineSlide{0%{left:-100%}50%{left:100%}to{left:100%}}.splash-center{gap:16px;z-index:2}.splash-big-number,.splash-center{align-items:center;display:flex;position:relative}.splash-big-number{line-height:1}.splash-number-glow{animation:glowPulse 2s ease-in-out 1.2s infinite;background:radial-gradient(ellipse at center,#19b9d740 0,#0000 70%);inset:-20px;opacity:0;position:absolute;z-index:-1}@keyframes glowPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.splash-char{-webkit-text-fill-color:#0000;background:linear-gradient(180deg,#42d0ee,#1fb5d5 30%,#1490b8 60%,#0a6d8e);-webkit-background-clip:text;background-clip:text;display:inline-block;filter:drop-shadow(0 4px 8px rgba(10,109,142,.7));font-family:Arial Black,Arial,sans-serif;font-size:140px;font-weight:900;position:relative}.splash-char-0{animation:char0Enter .9s cubic-bezier(.16,1,.3,1) .5s forwards;opacity:0}.splash-char-2{animation:char2Enter .9s cubic-bezier(.16,1,.3,1) .7s forwards;filter:drop-shadow(0 4px 8px rgba(10,109,142,.7)) drop-shadow(0 0 30px rgba(25,185,215,.35));font-size:160px;opacity:0}@keyframes char0Enter{0%{opacity:0;transform:translateX(-60px) rotateY(90deg) scale(.3)}60%{opacity:1;transform:translateX(5px) rotateY(-5deg) scale(1.05)}to{opacity:1;transform:translateX(0) rotateY(0deg) scale(1)}}@keyframes char2Enter{0%{opacity:0;transform:translateX(60px) rotateY(-90deg) scale(.3)}60%{opacity:1;transform:translateX(-5px) rotateY(5deg) scale(1.05)}to{opacity:1;transform:translateX(0) rotateY(0deg) scale(1)}}.splash-letter{animation:letterPop .4s cubic-bezier(.34,1.56,.64,1) forwards;display:inline-block;opacity:0}@keyframes letterPop{0%{filter:blur(4px);opacity:0;transform:translateY(20px) scale(.3) rotate(-10deg)}60%{transform:translateY(-3px) scale(1.1) rotate(1deg)}to{filter:blur(0);opacity:1;transform:translateY(0) scale(1) rotate(0deg)}}.splash-right-text{display:flex;flex-direction:column;gap:2px}.splash-line-1{color:#fff;font-size:32px;font-weight:800;letter-spacing:3px;text-shadow:0 0 12px #19b9d780,2px 2px 0 #0a6d8e99}.splash-line-2{color:#fff;font-size:48px;font-weight:900;letter-spacing:5px;text-shadow:0 0 18px #19b9d78c,3px 3px 0 #0a6d8eb3}.splash-brand-banner{animation:bannerSlide .7s cubic-bezier(.16,1,.3,1) 2.1s forwards;background:linear-gradient(135deg,#1490b8,#0b6e92);border-radius:8px;box-shadow:0 4px 20px #1490b880;opacity:0;overflow:hidden;padding:10px 32px;position:relative;z-index:2}.splash-brand-text{color:#fff;font-size:18px;font-weight:800;letter-spacing:4px;position:relative;z-index:1}.splash-banner-shine{animation:shineSlide 2.5s ease-in-out 2.8s infinite;background:linear-gradient(90deg,#0000,#ffffff40,#0000);height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes bannerSlide{0%{opacity:0;transform:scaleX(0)}60%{transform:scaleX(1.03)}to{opacity:1;transform:scaleX(1)}}.splash-loading{display:flex;gap:6px;margin-top:16px;position:relative;z-index:2}.splash-dot{animation:dotPulse 1.2s ease-in-out infinite;background:#1aadcc;border-radius:50%;height:6px;width:6px}.splash-dot:nth-child(2){animation-delay:.2s}.splash-dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}@media (max-width:768px){.splash-center{flex-direction:column;gap:4px}.splash-char{font-size:90px}.splash-char-2{font-size:100px}.splash-line-1{font-size:22px;text-align:center}.splash-line-2{font-size:32px;text-align:center}.splash-badge{font-size:12px;padding:5px 18px}.splash-brand-banner{padding:8px 20px}.splash-brand-text{font-size:13px;letter-spacing:3px}.splash-rings{height:280px;width:280px}}
/*# sourceMappingURL=main.994cb2f9.css.map*/