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}.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 (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}}
/*# sourceMappingURL=main.c4e32ae9.css.map*/