@import"https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;700;900&display=swap";.leaflet-container{height:100%;width:100%;z-index:1}.custom-marker{background:none;border:none}.leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 4px 12px #00000026}.leaflet-popup-content{margin:8px 12px;font-family:Be Vietnam Pro,sans-serif}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.animate-scan{animation:scan 1.5s ease-in-out infinite}.sam-xet-title{font-family:"Noto Serif",serif;font-weight:900;letter-spacing:.05em;position:relative;display:inline-block}.sam-xet-title:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;background:linear-gradient(45deg,#ff6b6b,#ffd93d,#6bcf7f,#4d96ff);background-size:300% 300%;border-radius:8px;opacity:.3;filter:blur(8px);animation:gradient-shift 3s ease infinite;z-index:-1}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.traditional-border{border:3px solid;border-image:linear-gradient(45deg,#d4af37,gold,#d4af37) 1;position:relative}.traditional-border:before,.traditional-border:after{content:"◆";position:absolute;color:gold;font-size:1.2em;text-shadow:0 0 10px rgba(255,215,0,.8)}.traditional-border:before{left:-15px;top:50%;transform:translateY(-50%)}.traditional-border:after{right:-15px;top:50%;transform:translateY(-50%)}.vn-pattern{background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(212,175,55,.1) 10px,rgba(212,175,55,.1) 20px),repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(212,175,55,.1) 10px,rgba(212,175,55,.1) 20px)}.calligraphy-text{font-family:"Noto Serif",serif;font-weight:700;background:linear-gradient(180deg,#8b0000,#dc143c,#8b0000);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 2px 4px rgba(139,0,0,.5));position:relative}.calligraphy-text:after{content:attr(data-text);position:absolute;left:2px;top:2px;z-index:-1;background:linear-gradient(180deg,gold,orange);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.3}.seal-style{display:inline-block;padding:8px 16px;background:linear-gradient(135deg,#8b0000,#dc143c,#8b0000);border:3px solid #FFD700;border-radius:4px;box-shadow:0 0 20px #ffd70080,inset 0 0 20px #ffd70033;position:relative}.seal-style:before,.seal-style:after{content:"";position:absolute;width:8px;height:8px;background:gold;border-radius:50%;box-shadow:0 0 10px #ffd700cc}.seal-style:before{top:-4px;left:-4px}.seal-style:after{bottom:-4px;right:-4px}@keyframes animate-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-from-bottom-4{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #e74c3c66}50%{box-shadow:0 0 30px #e74c3ccc}}@keyframes bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-in{animation:animate-in .3s ease-out}.slide-in-from-bottom-4{animation:slide-in-from-bottom-4 .3s ease-out}.fade-in{animation:fade-in .3s ease-out}.animation-delay-75{animation-delay:75ms}button,.btn,a[role=button]{transition:all .3s cubic-bezier(.4,0,.2,1)}button:hover,.btn:hover,a[role=button]:hover{transform:translateY(-2px)}button:active,.btn:active,a[role=button]:active{transform:translateY(0)}.btn-primary,button[class*=bg-primary],button[class*=bg-red-]{position:relative;overflow:hidden}.btn-primary:before,button[class*=bg-primary]:before,button[class*=bg-red-]:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-primary:hover:before,button[class*=bg-primary]:hover:before,button[class*=bg-red-]:hover:before{left:100%}.btn-glow{animation:pulse-glow 2s infinite}.card-hover{transition:all .3s ease}.card-hover:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #0000001a}.icon-hover{transition:transform .3s ease}.icon-hover:hover{transform:rotate(360deg) scale(1.1)}.text-glow-hover:hover{text-shadow:0 0 20px currentColor}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html{scroll-behavior:smooth}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:#f1f5f9;border-radius:2px}.chat-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#94a3b8}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple:active:after{width:300px;height:300px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:rotate(0)}}.animate-fade-in-up{animation:fadeInUp .8s ease-out forwards}.animate-fade-in-left{animation:fadeInLeft .8s ease-out forwards}.animate-fade-in-right{animation:fadeInRight .8s ease-out forwards}.animate-scale-in{animation:scaleIn .6s ease-out forwards}.animate-float{animation:float 3s ease-in-out infinite}.animate-slide-in-top{animation:slideInFromTop .6s ease-out forwards}.animate-zoom-in{animation:zoomIn .5s ease-out forwards}.animate-rotate-in{animation:rotateIn .8s ease-out forwards}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.25,.46,.45,.94)}.animate-on-scroll.animate-in{opacity:1;transform:translateY(0)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.lazy-image{opacity:0;transition:opacity .3s ease}.lazy-image.loaded{opacity:1}.hover-lift{transition:all .3s cubic-bezier(.25,.46,.45,.94)}.hover-lift:hover{transform:translateY(-8px);box-shadow:0 20px 40px #00000026}.hover-glow{transition:all .3s ease}.hover-glow:hover{box-shadow:0 0 30px #e74c3c99;transform:scale(1.05)}.parallax{transform:translateZ(0);will-change:transform}*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.focus-visible:focus-visible{outline:2px solid #E74C3C;outline-offset:2px}@keyframes skeleton-loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200px 100%;animation:skeleton-loading 1.5s infinite}@keyframes blob{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-50px) scale(1.1)}50%{transform:translate(-20px,20px) scale(.9)}75%{transform:translate(50px,50px) scale(1.05)}}@keyframes particle{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-100px) scale(0)}}@keyframes bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}.animate-particle{animation:particle 1s ease-out forwards;font-size:2rem}.animate-bounce-subtle{animation:bounce-subtle 2s ease-in-out infinite}.animate-fade-in{animation:fade-in .3s ease-out}.hover\:scale-102:hover{transform:scale(1.02)}
