html{cursor:none}
@media (hover:none){html{cursor:auto}}

.fx-stars{position:fixed;inset:0;z-index:0;pointer-events:none}

.fx-init{position:fixed;inset:0;z-index:9999;background:#0d1721;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;color:#f4eee4;font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;transition:opacity .6s,transform .6s}
.fx-init.gone{opacity:0;transform:scale(1.04);pointer-events:none}
.fx-init .globe{width:120px;height:120px;border-radius:50%;border:1px solid rgba(244,238,228,.18);position:relative;overflow:hidden}
.fx-init .globe::before,.fx-init .globe::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(125,211,192,.4)}
.fx-init .globe::before{transform:rotateX(60deg);animation:fx-orbit-x 8s linear infinite}
.fx-init .globe::after{transform:rotateY(60deg);animation:fx-orbit-y 12s linear infinite}
.fx-init .globe .core{position:absolute;left:50%;top:50%;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ff6b3d,#a23510);transform:translate(-50%,-50%);box-shadow:0 0 30px rgba(255,107,61,.6)}
.fx-init .lines{display:flex;flex-direction:column;align-items:center;gap:6px}
.fx-init .lines em{color:#7dd3c0;font-style:normal}
@keyframes fx-orbit-x{to{transform:rotateX(60deg) rotate(360deg)}}
@keyframes fx-orbit-y{to{transform:rotateY(60deg) rotate(360deg)}}

.fx-cur{position:fixed;left:0;top:0;width:40px;height:40px;border:1px solid rgba(244,238,228,.6);border-radius:50%;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);mix-blend-mode:difference;transition:width .25s,height .25s,border-color .25s,background .2s}
.fx-cur::after{content:"";position:absolute;inset:48%;background:#f4eee4;border-radius:50%;transition:inset .2s}
.fx-cur.hot{width:60px;height:60px;border-color:#ff6b3d;background:rgba(255,107,61,.06)}
.fx-cur.hot::after{inset:46%;background:#ff6b3d}
.fx-glow{position:fixed;left:0;top:0;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(125,211,192,.18),transparent 60%);pointer-events:none;z-index:1;transform:translate(-50%,-50%);transition:opacity .3s;mix-blend-mode:screen}

.fx-rv{opacity:0;transform:translateY(30px);transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1)}
.fx-rv.in{opacity:1;transform:none}
.fx-rv-3d{opacity:0;transform:translateY(40px) rotateX(8deg);transform-origin:center bottom;perspective:1200px;transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1)}
.fx-rv-3d.in{opacity:1;transform:none}

.hero h1 .fx-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .04em}
.hero h1 .fx-word > span{display:inline-block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.2,.85,.2,1)}
.hero h1.go .fx-word > span{transform:none}
.fx-rotor{display:inline-block;position:relative;overflow:hidden;vertical-align:bottom;color:#ff6b3d;font-style:italic;text-align:left}
.fx-rotor .r-list{display:flex;flex-direction:column;transition:transform .6s cubic-bezier(.4,1.4,.4,.95)}
.fx-rotor .r-list span{display:block;white-space:nowrap}

.city-card{transform-style:preserve-3d;will-change:transform}
.city-card .spot{position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(125,211,192,.15) 0,transparent 30%);pointer-events:none;opacity:0;transition:opacity .3s;z-index:3;border-radius:inherit}
.city-card:hover .spot{opacity:1}

.itin-slot{will-change:transform}

.visa-row{position:relative;overflow:hidden}
.visa-row::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#7dd3c0,transparent);transform:translateX(-100%);transition:transform .8s cubic-bezier(.4,.6,.4,1)}
.visa-row:hover::after{transform:translateX(100%)}

.nav a{position:relative;overflow:hidden;transition:color .25s,border-color .25s,background .25s}
.nav a::before{content:"";position:absolute;inset:0;border-radius:inherit;background:#f4eee4;transform:translateY(100%);transition:transform .35s cubic-bezier(.6,0,.3,1)}
.nav a:hover::before{transform:translateY(0)}
.nav a span{position:relative;z-index:1}

.bf{will-change:transform}
.bf .bf-icon{transition:transform .35s cubic-bezier(.4,1.4,.4,1),background .25s}
.bf:hover .bf-icon{transform:scale(1.12) rotate(-6deg);background:rgba(255,107,61,.3)}

.compare-side{transition:background .3s}
.compare-side:hover{background:rgba(125,211,192,.04)}
.compare-stat{transition:padding-left .25s}
.compare-side:hover .compare-stat{padding-left:6px}

.modal{animation:fx-modal-up .65s cubic-bezier(.25,.85,.3,1.02) backwards}
@keyframes fx-modal-up{from{opacity:0;transform:translateY(60px) scale(.98)}}

.hero-card-row{transition:background .25s}
.hero-card-row:hover{background:rgba(125,211,192,.06)}
.hero-card-row .v{font-variant-numeric:tabular-nums}

.clim-mo{transition:background .3s,transform .3s}
.clim-mo:hover{background:rgba(125,211,192,.08);transform:translateY(-2px)}

.ticker:hover .ticker-track{animation-play-state:paused}

.region-pill{transition:all .25s}
.region-pill:not(.on):hover{border-color:#7dd3c0;color:#7dd3c0}

.hero-cta{position:relative;overflow:hidden;will-change:transform;transition:transform .2s}
.hero-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(13,23,33,.18),transparent 50%);opacity:0;transition:opacity .3s}
.hero-cta:hover::before{opacity:1}

.tz-overlap{animation:fx-pulse-glow 3s ease-in-out infinite}
@keyframes fx-pulse-glow{0%,100%{box-shadow:inset 0 0 24px rgba(255,107,61,.1)}50%{box-shadow:inset 0 0 36px rgba(255,107,61,.3)}}

.sec-title{position:relative}

.budget-amount em.bump{animation:fx-bump .35s 1}
@keyframes fx-bump{50%{transform:scale(1.18) rotate(-3deg);display:inline-block}}
.budget-amount em{display:inline-block}

@media (max-width:1000px){
  html{cursor:auto}
  .fx-cur,.fx-glow,.fx-stars{display:none}
}
