.locations-hero,.ip-hero{align-items:center;min-height:42vh;padding:7.5rem 0 3.5rem;display:flex;position:relative;overflow:hidden}.locations-hero-bg,.ip-hero-bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.locations-hero-orb,.ip-hero-orb{filter:blur(80px);opacity:.5;border-radius:50%;position:absolute}.locations-hero-orb-1,.ip-hero-orb-1{background:linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--accent)) 100%);width:400px;height:400px;animation:8s ease-in-out infinite tool-hero-float;top:-100px;right:-100px}.ip-hero-orb-1{width:500px;height:500px}.locations-hero-orb-2,.ip-hero-orb-2{background:linear-gradient(135deg, hsl(var(--accent)) 0%, hsl(var(--primary)) 100%);width:300px;height:300px;animation:10s ease-in-out infinite reverse tool-hero-float;bottom:-50px;left:-50px}.locations-hero-grid,.ip-hero-grid{background-image:linear-gradient(to right, hsl(var(--foreground) / .03) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--foreground) / .03) 1px, transparent 1px);opacity:.55;background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 55% at 50% 25%,#000 15%,#0000 75%);mask-image:radial-gradient(70% 55% at 50% 25%,#000 15%,#0000 75%)}.locations-hero-content,.ip-hero-content{z-index:1;text-align:center;max-width:46rem;margin:0 auto;position:relative}.locations-hero-badge,.ip-hero-badge{background:hsl(var(--card) / .72);border:1px solid hsl(var(--border) / .9);letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--muted-foreground));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:9999px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.35rem .85rem .35rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.locations-hero-badge .badge-dot,.ip-hero-badge .badge-dot{background:hsl(var(--accent));width:.45rem;height:.45rem;box-shadow:0 0 0 3px hsl(var(--accent) / .2);border-radius:50%;animation:2s ease-in-out infinite tool-hero-pulse}.locations-hero-title,.ip-hero-title{letter-spacing:-.035em;color:hsl(var(--foreground));margin-bottom:.85rem;font-size:clamp(2rem,4.5vw,2.85rem);font-weight:700;line-height:1.12}.locations-hero-subtitle,.ip-hero-subtitle{color:hsl(var(--muted-foreground));max-width:36rem;margin:0 auto 1.75rem;font-size:1.05rem;line-height:1.6}.ip-hero-buttons{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.locations-api-key-wrapper,.ip-api-key-wrapper{max-width:32rem;margin:0 auto}.locations-api-key-card,.ip-api-key-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;align-items:center;gap:.5rem;padding:.5rem;transition:border-color .3s,box-shadow .3s;display:flex}.locations-api-key-card:focus-within,.ip-api-key-card:focus-within{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .1)}.locations-api-key-icon,.ip-api-key-icon{background:hsl(var(--primary) / .1);width:40px;height:40px;color:hsl(var(--primary));border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.locations-api-key-input,.ip-api-key-input{color:hsl(var(--foreground));background:0 0;border:none;outline:none;flex:1;padding:.75rem;font-size:.95rem}.locations-api-key-input::placeholder,.ip-api-key-input::placeholder{color:hsl(var(--muted-foreground))}.locations-api-key-toggle,.ip-api-key-toggle{width:40px;height:40px;color:hsl(var(--muted-foreground));cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.locations-api-key-toggle:hover,.ip-api-key-toggle:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.locations-api-key-hint,.ip-api-key-hint{color:hsl(var(--muted-foreground));margin-top:.75rem;font-size:.875rem}.locations-api-key-hint a,.ip-api-key-hint a{color:hsl(var(--primary));font-weight:500;text-decoration:none}@keyframes tool-hero-float{0%,to{transform:translateY(0)}50%{transform:translateY(18px)}}@keyframes tool-hero-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.locations-hero-orb,.ip-hero-orb,.locations-hero-badge .badge-dot,.ip-hero-badge .badge-dot{animation:none}}
