
/* ChinaMaps Cosmic Atlas theme: sitewide palette 29, responsive layout, restrained motion */
:root{color-scheme:light;--cm-ink:#1e1b4b;--cm-muted:#555783;--cm-paper:#f8fafc;--cm-card:#ffffff;--cm-line:#e0e7ff;--cm-blue:#312e81;--cm-cyan:#818cf8;--cm-gold:#818cf8;--cm-purple:#312e81;--cm-lavender:#818cf8;--cm-ice:#f8fafc}
html{width:100%;max-width:100%;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--cm-paper)!important;color:var(--cm-ink)!important;width:100%;max-width:100%;margin:0;overflow-x:clip}
#root{min-width:0;max-width:100%;overflow-x:clip;background:var(--cm-paper);color:var(--cm-ink)}
*,*::before,*::after{box-sizing:border-box}
img,video,canvas,svg{max-width:100%}
button,input,select,textarea{max-width:100%;min-width:0}
a,button,h1,h2,h3,h4,p{overflow-wrap:anywhere}
::selection{background:#c7d2fe;color:#312e81}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:#eef2ff}
::-webkit-scrollbar-thumb{background:#c7d2fe;border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:#818cf8}
/* Override the original dark utility palette while keeping component structure intact */
[class~="bg-[#080d1a]"],[class*="bg-slate-950"],[class*="bg-slate-900"]{background-color:#ffffff!important}
[class*="bg-slate-800"]{background-color:#eef2ff!important}
[class*="bg-slate-700"]{background-color:#e0e7ff!important}
[class*="border-slate-800"],[class*="border-slate-700"],[class*="border-slate-600"]{border-color:#e0e7ff!important}
[class*="text-white"],[class*="text-slate-100"],[class*="text-slate-200"]{color:#1e1b4b!important}
[class*="text-slate-300"],[class*="text-slate-400"]{color:#555783!important}
[class*="text-cyan-400"],[class*="text-cyan-300"]{color:#312e81!important}
[class*="bg-cyan-400"],[class*="bg-cyan-500"]{background-color:#312e81!important;color:#ffffff!important}
[class*="hover:bg-cyan-300"]:hover{background-color:#4338ca!important;color:#ffffff!important}
[class*="shadow-2xl"],[class*="shadow-xl"]{box-shadow:0 14px 36px rgba(49,46,129,.10)!important}
[class*="rounded-2xl"],[class*="rounded-3xl"]{border-radius:20px}
header,nav{max-width:100%;min-width:0}
main,section,article,aside,footer{min-width:0;max-width:100%}
article,[class*="card"]{box-shadow:0 8px 28px rgba(49,46,129,.07);border-color:#e0e7ff}
img{height:auto}
.leaflet-container{width:100%;max-width:100%;min-height:260px;border-radius:18px;overflow:hidden}
.cm-motion-ready .animate-fade-in,.cm-motion-ready [class*="animate-in"]{animation:cmFadeUp .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes cmFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes cmFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  button,a,[role="button"]{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
  button:hover,a:hover,[role="button"]:hover{transform:translateY(-1px)}
  article:hover,[class*="card"]:hover{box-shadow:0 16px 38px rgba(49,46,129,.14)}
}
@media(max-width:767px){
  html,body,#root{width:100%!important;min-width:0!important}
  body{font-size:16px}
  header{width:100%;max-width:100vw}
  main,section,nav,footer{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  [class*="container"]{max-width:100%!important;min-width:0!important}
  [class*="grid-cols-"]{grid-template-columns:minmax(0,1fr)!important}
  [class*="min-w-"]{min-width:0!important}
  [class*="w-screen"]{width:100%!important}
  h1{font-size:clamp(1.65rem,7vw,2.35rem);line-height:1.15}
  h2{font-size:clamp(1.35rem,5.8vw,1.9rem);line-height:1.2}
  h3{font-size:clamp(1.05rem,4.5vw,1.35rem);line-height:1.3}
  p{line-height:1.65}
  article img,[class*="card"] img{display:block;width:100%;object-fit:cover}
  .leaflet-container{min-height:300px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Cosmic Atlas site-wide component accents */
:root{--cm-ink:#1e1b4b;--cm-muted:#555783;--cm-paper:#f8fafc;--cm-card:#fff;--cm-line:#e0e7ff;--cm-blue:#312e81;--cm-cyan:#818cf8}
a{color:#4338ca}
a:hover{color:#312e81}
button,[role="button"]{accent-color:#312e81}
input:focus,select:focus,textarea:focus{outline-color:#818cf8!important;border-color:#818cf8!important;box-shadow:0 0 0 3px rgba(129,140,248,.18)}
[class*="bg-indigo-"],[class*="bg-violet-"]{--tw-bg-opacity:1}

/* Cosmic Atlas organic visual system — responsive, motion-safe */
:root{--atlas-ink:#17152f;--atlas-purple:#312e81;--atlas-lavender:#818cf8;--atlas-lilac:#c4b5fd;--atlas-paper:#f8fafc;--atlas-card:rgba(255,255,255,.88);--atlas-border:rgba(99,102,241,.18);--atlas-shadow:0 18px 55px rgba(49,46,129,.10);--atlas-radius:22px;--atlas-ease:cubic-bezier(.2,.75,.25,1)}
html{scroll-behavior:smooth;background:var(--atlas-paper)}body{color:var(--atlas-ink);background:radial-gradient(ellipse at 5% 0%,rgba(196,181,253,.24),transparent 32rem),radial-gradient(ellipse at 95% 16%,rgba(129,140,248,.13),transparent 28rem),var(--atlas-paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
::selection{background:#c4b5fd;color:#1e1b4b}button,a,[role=button]{transition:transform .22s var(--atlas-ease),box-shadow .22s var(--atlas-ease),background-color .22s ease,border-color .22s ease}
button:hover,[role=button]:hover{transform:translateY(-1px)}a:hover{color:#4f46e5}
header,nav{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
[class*=rounded-xl],[class*=rounded-2xl],[class*=rounded-3xl]{border-radius:var(--atlas-radius)}
[class*=shadow]{--tw-shadow-color:rgba(49,46,129,.10)}
.bg-blue-600,.bg-blue-700,.bg-indigo-600{background-color:var(--atlas-purple)!important}
.text-blue-600,.text-blue-700,.text-indigo-600{color:var(--atlas-purple)!important}
.border-blue-500,.border-indigo-500{border-color:var(--atlas-lavender)!important}
.bg-cyan-500,.bg-cyan-600{background-color:var(--atlas-lavender)!important}
.text-cyan-400,.text-cyan-500,.text-cyan-600{color:#6366f1!important}
.from-cyan-500{--tw-gradient-from:#818cf8 var(--tw-gradient-from-position)!important;--tw-gradient-to:rgb(129 140 248 / 0) var(--tw-gradient-to-position)!important}
.via-blue-600{--tw-gradient-to:rgb(49 46 129 / 0) var(--tw-gradient-to-position)!important;--tw-gradient-stops:var(--tw-gradient-from),#312e81 var(--tw-gradient-via-position),var(--tw-gradient-to)!important}
.to-amber-400{--tw-gradient-to:#c4b5fd var(--tw-gradient-to-position)!important}
.bg-\[\#070d1e\],.bg-\[\#070d1e\] *{background-color:#211d4e}
/* Organic ambient blobs for hero and feature panels */
.atlas-organic{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#312e81 0%,#4338ca 48%,#818cf8 100%);color:white}
.atlas-organic:before,.atlas-organic:after{content:"";position:absolute;z-index:-1;border-radius:44% 56% 61% 39%/43% 39% 61% 57%;filter:blur(1px);pointer-events:none;animation:atlas-float 13s ease-in-out infinite alternate}
.atlas-organic:before{width:19rem;height:19rem;right:-5rem;top:-8rem;background:radial-gradient(circle at 35% 35%,rgba(248,250,252,.34),rgba(196,181,253,.08) 65%,transparent 70%)}
.atlas-organic:after{width:14rem;height:14rem;left:8%;bottom:-9rem;background:radial-gradient(circle,rgba(129,140,248,.5),rgba(196,181,253,.04) 70%,transparent 72%);animation-delay:-5s}
.atlas-glass{background:rgba(255,255,255,.78);border:1px solid rgba(129,140,248,.20);box-shadow:var(--atlas-shadow);backdrop-filter:blur(16px)}
.atlas-gradient-text{background:linear-gradient(100deg,#312e81,#6366f1 55%,#a78bfa);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes atlas-float{0%{transform:translate3d(0,0,0) rotate(0deg)}100%{transform:translate3d(-16px,13px,0) rotate(8deg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:640px){body{overflow-x:hidden}main{padding-bottom:env(safe-area-inset-bottom)}button,a,[role=button]{min-height:40px}}
