/* Atlas Academic marketing site: soft, airy style shared with the student trip pages.
   Plus Jakarta Sans for everything, Jost only for the wordmark. */
:root{
  --brand:#12907A; --brand-deep:#0B6E5A; --brand-ink:#085546; --brand-bright:#1FB39A;
  --mint:#E8FAF5; --tint:#F4FBF8; --line:#D5EDE6; --ink:#0F1F1A;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{font-family:'Plus Jakarta Sans',system-ui,sans-serif;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{color:var(--ink);background:#fff;overflow-x:hidden;}
/* html prefix beats the Tailwind CDN preflight, which is injected after this file */
html h1,html h2{font-weight:800;letter-spacing:-.035em;text-wrap:balance;}
html h3{font-weight:700;letter-spacing:-.02em;text-wrap:balance;}
p,li{text-wrap:pretty;}
/* ATLAS centred over ACADEMIC; every line carries the same trailing tracking, so centring stays true. */
.wordmark{font-family:'Jost',sans-serif;font-weight:300;letter-spacing:.32em;line-height:1.15;text-align:center;}
.kicker{display:inline-flex;align-items:center;gap:.6rem;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);}
.kicker::before{content:'';width:1.75rem;height:2px;border-radius:2px;background:currentColor;opacity:.6;}
.kicker-center::after{content:'';width:1.75rem;height:2px;border-radius:2px;background:currentColor;opacity:.6;}
.h2{font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.04;color:var(--ink);}
.lead{font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.7;color:#475569;}
.section{padding:clamp(3.75rem,9vw,8rem) 0;scroll-margin-top:4rem;}
.wrap{max-width:80rem;margin:0 auto;padding:0 1.25rem;}
@media(min-width:640px){.wrap{padding:0 2rem;}}
@media(min-width:1024px){.wrap{padding:0 3rem;}}
.soft{background:linear-gradient(180deg,#ffffff 0%,var(--tint) 100%);}
.soft-up{background:linear-gradient(180deg,var(--tint) 0%,#ffffff 100%);}

/* ── Intro curtain (first visit per session) ── */
.curtain{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 35%,#1fb39a 0%,#12907a 45%,#085546 100%);
  clip-path:inset(0 0 0 0 round 0);transition:clip-path .9s cubic-bezier(.76,0,.24,1),opacity .9s ease;}
.curtain-inner{position:relative;display:flex;flex-direction:column;align-items:center;transition:transform .7s cubic-bezier(.76,0,.24,1),opacity .5s ease;}
.curtain-glow{position:absolute;width:18rem;height:18rem;border-radius:9999px;background:rgba(255,255,255,.1);filter:blur(48px);animation:splash-glow 3s ease-in-out infinite;}
.curtain.leave{clip-path:inset(0 0 100% 0 round 0 0 48px 48px);}
.curtain.leave .curtain-inner{transform:translateY(-40px) scale(.92);opacity:0;}
.no-curtain .curtain{display:none;}
.splash-badge{animation:splash-pop .7s cubic-bezier(.2,.9,.3,1.2) both;}
.splash-ring{animation:splash-ring .9s ease-out .15s both;}
.splash-needle{transform-origin:44px 44px;transform-box:view-box;animation:splash-needle 1.1s cubic-bezier(.3,1.4,.5,1) .2s both,splash-spin 2.4s cubic-bezier(.6,0,.4,1) 1.5s infinite;}
.splash-word{animation:curtain-word .8s var(--ease) .35s both;}
.splash-sub{animation:splash-rise .6s ease-out .6s both;}
@keyframes splash-pop{0%{opacity:0;transform:scale(.6) rotate(-12deg)}60%{opacity:1;transform:scale(1.06) rotate(2deg)}100%{opacity:1;transform:none}}
@keyframes splash-needle{0%{transform:rotate(-200deg)}55%{transform:rotate(25deg)}75%{transform:rotate(-10deg)}100%{transform:rotate(0)}}
@keyframes splash-spin{to{transform:rotate(360deg)}}
@keyframes splash-ring{from{stroke-dasharray:0 252}to{stroke-dasharray:252 0}}
@keyframes splash-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes splash-glow{0%,100%{transform:scale(.9);opacity:.6}50%{transform:scale(1.15);opacity:1}}
@keyframes curtain-word{from{transform:translateY(110%);letter-spacing:.45em;opacity:0}to{transform:none;letter-spacing:.32em;opacity:1}}

/* ── Scroll progress ── */
#progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--brand-bright),var(--brand));}

/* ── Navigation ── */
#navbar{transition:background-color .35s ease,box-shadow .35s ease,color .35s ease,backdrop-filter .35s ease;color:#fff;}
#navbar .nav-link{color:rgba(255,255,255,.9);}
#navbar .nav-link:hover{color:#fff;}
#navbar .nav-cta{background:#fff;color:var(--brand-ink);}
#navbar.solid{background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);
  box-shadow:0 1px 0 rgba(15,31,26,.06),0 10px 30px -18px rgba(15,31,26,.25);color:var(--brand);}
#navbar.solid .nav-link{color:#334155;}
#navbar.solid .nav-link:hover{color:var(--brand);}
#navbar.solid .nav-cta{background:var(--brand);color:#fff;}
#navbar.solid .burger{color:var(--ink);}
.nav-link{position:relative;font-size:.9rem;font-weight:600;transition:color .2s ease;}
.nav-link::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:currentColor;transform:scaleX(0);transition:transform .3s var(--ease);}
.nav-link:hover::after{transform:scaleX(1);}
#mobile-menu{position:fixed;inset:0;z-index:80;color:#fff;display:flex;flex-direction:column;
  background:radial-gradient(120% 90% at 50% 20%,#1fb39a 0%,#12907a 45%,#085546 100%);
  clip-path:circle(0% at calc(100% - 2.5rem) 2.5rem);transition:clip-path .6s cubic-bezier(.76,0,.24,1);visibility:hidden;}
#mobile-menu.open{clip-path:circle(150% at calc(100% - 2.5rem) 2.5rem);visibility:visible;}
#mobile-menu .m-link{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease);}
#mobile-menu.open .m-link{opacity:1;transform:none;}
#mobile-menu.open .m-link:nth-child(1){transition-delay:.15s}#mobile-menu.open .m-link:nth-child(2){transition-delay:.2s}
#mobile-menu.open .m-link:nth-child(3){transition-delay:.25s}#mobile-menu.open .m-link:nth-child(4){transition-delay:.3s}
#mobile-menu.open .m-link:nth-child(5){transition-delay:.35s}#mobile-menu.open .m-link:nth-child(6){transition-delay:.4s}

/* ── Hero ── */
.hero-img{animation:kenburns 16s cubic-bezier(.2,.6,.2,1) both;}
.hero-shade{background:linear-gradient(180deg,rgba(4,20,17,.6) 0%,rgba(4,20,17,.12) 18%,rgba(4,20,17,0) 26%,rgba(4,20,17,.12) 42%,rgba(4,20,17,.70) 66%,rgba(4,20,17,.90) 100%);}
@media(min-width:1024px){.hero-shade{background:
  linear-gradient(90deg,rgba(4,20,17,.62) 0%,rgba(4,20,17,.25) 45%,rgba(4,20,17,0) 70%),
  linear-gradient(180deg,rgba(4,20,17,.62) 0%,rgba(4,20,17,.15) 14%,rgba(4,20,17,0) 24%,rgba(4,20,17,.1) 50%,rgba(4,20,17,.75) 100%);}}
.hero-title{font-size:clamp(2.6rem,8.4vw,6.75rem);line-height:.95;letter-spacing:-.045em;text-shadow:0 2px 24px rgba(0,0,0,.35);}
.hero-in{opacity:0;}
.intro-done .hero-in{animation:hero-in 1s var(--ease) both;}
.intro-done .d1{animation-delay:.05s}.intro-done .d2{animation-delay:.15s}.intro-done .d3{animation-delay:.28s}
.intro-done .d4{animation-delay:.42s}.intro-done .d5{animation-delay:.6s}.intro-done .d6{animation-delay:.9s}
.glass{background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);}
.glass-light{background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);}
.scroll-dot{animation:hero-scroll 1.8s ease-in-out 1.5s infinite;}
@keyframes kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes hero-in{from{opacity:0;transform:translateY(26px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes hero-scroll{0%{transform:translateY(0);opacity:1}70%{transform:translateY(12px);opacity:0}100%{transform:translateY(0);opacity:0}}
.ping{animation:ping 1.6s cubic-bezier(0,0,.2,1) infinite;}
@keyframes ping{75%,100%{transform:scale(2.2);opacity:0}}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:9999px;padding:.95rem 1.6rem;font-weight:700;font-size:.95rem;
  transition:transform .25s var(--ease),box-shadow .25s ease,background-color .25s ease;white-space:nowrap;}
.btn:hover{transform:translateY(-2px);}
.btn svg{transition:transform .25s var(--ease);}
.btn:hover svg.arrow{transform:translateX(3px);}
.btn-white{background:#fff;color:var(--brand-ink);box-shadow:0 18px 40px -16px rgba(0,0,0,.45);}
.btn-brand{background:var(--brand);color:#fff;box-shadow:0 18px 40px -18px rgba(18,144,122,.8);}
.btn-brand:hover{background:var(--brand-deep);}
.btn-ghost{color:#fff;}
.btn-ghost:hover{background:rgba(0,0,0,.55);}
.cta-pulse{animation:cta-pulse 2.4s cubic-bezier(.4,0,.2,1) infinite;}
@keyframes cta-pulse{0%{box-shadow:0 18px 40px -16px rgba(0,0,0,.45),0 0 0 0 rgba(255,255,255,.55)}70%{box-shadow:0 18px 40px -16px rgba(0,0,0,.45),0 0 0 14px rgba(255,255,255,0)}100%{box-shadow:0 18px 40px -16px rgba(0,0,0,.45),0 0 0 0 rgba(255,255,255,0)}}

/* ── Scroll reveals ── */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms);}
.js .rv.in{opacity:1;transform:none;}
.js .rv-scale{opacity:0;transform:scale(.94);transition:opacity 1s var(--ease),transform 1.1s var(--ease);transition-delay:var(--d,0ms);}
.js .rv-scale.in{opacity:1;transform:none;}

/* ── Partner marquee ── */
.marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.trip-track{display:flex;align-items:center;gap:3.5rem;width:max-content;animation:scroll-track 50s linear infinite;}
.trip-track:hover{animation-play-state:paused;}
@keyframes scroll-track{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.partner-logo{height:2.5rem;width:auto;max-width:9rem;object-fit:contain;filter:grayscale(1);opacity:.55;transition:filter .3s ease,opacity .3s ease;}
.partner-logo:hover{filter:none;opacity:1;}
@media(min-width:768px){.partner-logo{height:2.9rem;}}

/* ── Cards ── */
.card{background:#fff;border-radius:1.75rem;box-shadow:0 1px 0 rgba(15,31,26,.04),0 24px 60px -36px rgba(15,31,26,.35);border:1px solid rgba(213,237,230,.7);}
.lift{transition:transform .45s var(--ease),box-shadow .45s ease;}
@media(hover:hover){.lift:hover{transform:translateY(-6px);box-shadow:0 1px 0 rgba(15,31,26,.04),0 36px 70px -34px rgba(15,31,26,.45);}}
.icon-chip{display:flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;border-radius:1rem;flex-shrink:0;
  background:linear-gradient(145deg,var(--mint),#d3f3ea);color:var(--brand);transition:background .35s ease,color .35s ease,transform .35s var(--ease);}
.group:hover .icon-chip{background:linear-gradient(145deg,var(--brand-bright),var(--brand));color:#fff;transform:rotate(-6deg) scale(1.05);}

/* Destination cards */
/* Endless, softly drifting row. JS moves the track; drag, swipe and arrows still work. */
.dest-viewport{overflow:hidden;padding:0 0 2rem 1.25rem;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;}
.dest-viewport.dragging{cursor:grabbing;}
@media(min-width:640px){.dest-viewport{padding-left:2rem;}}
@media(min-width:1024px){.dest-viewport{padding-left:max(3rem,calc((100vw - 80rem)/2 + 3rem));}}
.dest-track{display:flex;width:max-content;will-change:transform;}
.dest img{-webkit-user-drag:none;pointer-events:none;}
.dest{position:relative;flex:0 0 auto;width:min(78vw,20rem);margin-right:1.25rem;aspect-ratio:4/5;border-radius:1.75rem;overflow:hidden;background:#0b3b33;isolation:isolate;
  box-shadow:0 30px 60px -36px rgba(15,31,26,.55);}
.dest img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease);}
@media(hover:hover){.dest:hover img{transform:scale(1.07);}}
.dest::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,20,17,0) 40%,rgba(4,20,17,.82) 100%);z-index:1;}
.dest > div{position:relative;z-index:2;}
.arrow-btn{width:3rem;height:3rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--ink);
  border:1px solid var(--line);transition:background .25s ease,color .25s ease,transform .25s var(--ease),opacity .25s ease;}
.arrow-btn:hover{background:var(--brand);color:#fff;transform:scale(1.06);}

/* Process timeline */
.tl-line{position:absolute;background:var(--line);border-radius:4px;overflow:hidden;}
.tl-fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--brand-bright),var(--brand));transform-origin:0 0;transform:scaleX(0);}
@media(max-width:1023px){.tl-fill{background:linear-gradient(180deg,var(--brand-bright),var(--brand));transform:scaleY(0);}}
.tl-dot{transition:background .5s ease,color .5s ease,box-shadow .5s ease,transform .5s var(--ease);}
.step.on .tl-dot{background:var(--brand);color:#fff;box-shadow:0 0 0 8px rgba(18,144,122,.14);transform:scale(1.04);}

/* Video */
.play{transition:transform .35s var(--ease),background .3s ease;}
.group:hover .play{transform:scale(1.08);}
.play-ring::before{content:'';position:absolute;inset:0;border-radius:9999px;background:rgba(255,255,255,.35);animation:ping 2s cubic-bezier(0,0,.2,1) infinite;}

/* CTA band compass */
.slow-spin{animation:slow-spin 60s linear infinite;transform-origin:50% 50%;}
@keyframes slow-spin{to{transform:rotate(360deg)}}

/* Form */
.field,html .field{width:100%;border:1px solid var(--line);background:var(--tint);border-radius:1rem;padding:.9rem 1rem;font-size:.95rem;color:var(--ink);
  transition:border-color .2s,box-shadow .2s,background .2s;}
.field::placeholder{color:#94a3b8;}
.field:focus,html .field:focus{outline:none;background:#fff;border-color:var(--brand);box-shadow:0 0 0 4px rgba(18,144,122,.14);}
.label{display:block;font-size:.8rem;font-weight:700;color:#334155;margin-bottom:.4rem;}

/* WhatsApp */
.wa-ring::before{content:'';position:absolute;inset:0;border-radius:50%;background:#25D366;animation:wa-ring 2.2s ease infinite;z-index:-1;}
@keyframes wa-ring{0%{transform:scale(.9);opacity:.6}70%{transform:scale(1.25);opacity:0}100%{transform:scale(.9);opacity:0}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .js .rv,.js .rv-scale,.hero-in{opacity:1!important;transform:none!important;filter:none!important;}
}
