/* ===============================
   Nest of Stars – Frutiger Aero Maximalist CSS
   =============================== */

@import url('https://fonts.googleapis.com/css2?family=Comfortaa:wght@400;700&family=Quicksand:wght@400;700&display=swap');

:root {
  --rose: #FDE4EC;
  --lavender: #E7D8F3;
  --mint: #DFF3E3;
  --sky: #D4ECF9;
  --ivory: #FFFAE5;
  --white90: rgba(255, 240, 250, 0.85); /* rosa claro translúcido */
  --blur: blur(20px);
  --kofi: #29ABE0;
}
/* === Contenedor principal que agrupa todo el contenido === */
.main-wrapper {
  background: rgba(20, 20, 40, 0.6); /* fondo oscuro translúcido */
  border-radius: 24px;
  padding: 2rem;
  box-shadow: 0 0 32px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(10px);
  margin: 2rem auto;
  max-width: 900px; /* reducido de 1200px */
}


/* ============ Base & Layout ============ */
body {
  margin: 0 auto;
  max-width: 900px; /* reducido de 1200px */
  font-family: 'Comfortaa', 'Quicksand', sans-serif;
  background: url('fondo medialuna.png') no-repeat center center fixed;
  background-size: cover;
  overflow-x: hidden;
  position: relative;
  color: #333;
}

@keyframes backgroundPan {
  from { background-position: 0 0, center, center; }
  to { background-position: 1000px 1000px, center, center; }
}

* { box-sizing: border-box; margin: 0; padding: 0; }
h1, h2, h3, h4 {
  font-family: 'Comfortaa', sans-serif;
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.6),
               0 0 12px rgba(200, 220, 255, 0.5);
  letter-spacing: 0.5px;
}
a { text-decoration: none; color: inherit; transition: 0.3s ease; }

/* ============ Scrollbars ============ */
/* Webkit */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: var(--ivory);
  border-radius: 12px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.1);
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--lavender), var(--rose));
  border-radius: 12px;
  border: 3px solid var(--white90);
  box-shadow: 0 0 5px rgba(247,161,188,0.7);
}

::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--rose), var(--lavender));
}

/* Firefox */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--lavender) var(--ivory);
}

/* ============ Custom Cursor ============ */
#cursor {
  position: fixed;
  top:0; left:0;
  width:40px; height:40px; margin:-20px;
  border-radius:50%;
  pointer-events:none;
  background: radial-gradient(circle, var(--sky) 0%, transparent 60%);
  mix-blend-mode: screen;
  transition:0.2s;
  z-index:9999;
}

/* Cursor personalizado para todo el body, links y botones */
body, a, button {
  cursor: url('puntero.png') 8 8, auto;
}

/* ============ Animated Bubbles ============ */
#particles {
  position: fixed; top:0; left:0; width:100%; height:100%;
  pointer-events:none; overflow:hidden; z-index:1;
}
.bubble {
  position: absolute; background: var(--ivory);
  opacity:0.2; border-radius:50%;
  animation: rise 15s linear infinite;
}
@keyframes rise {
  0%   { transform: translateY(100vh) scale(0.2); }
  100% { transform: translateY(-10vh) scale(1); opacity:0; }
}

/* ============ Glassmorphism ============ */
.glass {
  background: linear-gradient(to bottom right,
    rgba(255, 255, 255, 0.45),
    rgba(255, 255, 255, 0.1));
  backdrop-filter: blur(20px) saturate(180%);
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.4);
  box-shadow:
    inset 0 0 1px rgba(255,255,255,0.4),
    0 10px 40px rgba(31,38,135,0.3),
    0 0 30px rgba(255, 255, 255, 0.2);
}

/* ============ Buttons ============ */
button, .kofi-btn {
  border: none;
  background: linear-gradient(135deg, #f8c8dc, #f7a1bc); /* rosa pastel degradado */
  box-shadow:
    0 4px 16px rgba(247, 161, 188, 0.4);
  backdrop-filter: blur(10px);
  color: #4a2c4d; /* morado oscuro suave */
  font-weight: bold;
  border-radius: 12px;
  padding: .75rem 1.5rem;
  transition: transform .2s ease, background .5s ease, color .3s ease;
  cursor: pointer;
}

button:hover, .kofi-btn:hover {
  transform: scale(1.08) rotate(-1deg);
  background: linear-gradient(135deg, #f7a1bc, #f8c8dc);
  color: #fff;
  box-shadow: 0 0 15px #ff77e7, 0 0 30px #e8a0f0;
}

/* Mantén el borde rosa si quieres, ajustado a tonos pastel */
.kofi-btn {
  border: 2px solid #f8c8dc; /* borde rosa pastel */
  color: #a8507d; /* texto morado pastel */
}

/* ============ Shimmer Text ============ */
@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.shiny-text {
  background: linear-gradient(
    to right,
    var(--sky),
    var(--mint),
    var(--lavender),
    var(--sky)
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 3s linear infinite;
}

/* ============ Cards ============ */
.post-card, .feature-card, .shop-item {
  box-shadow:
    inset 0 2px 8px rgba(255,255,255,0.3),
    0 4px 16px rgba(0,0,0,0.1);
  border-radius: 12px;
  background: var(--white90);
  padding: 1.5rem;
  position: relative;
}
.post-card:hover::after {
  content: "💫";
  position: absolute;
  top: -10px;
  right: -10px;
  font-size: 1.5rem;
  animation: sparkle 2s infinite;
}
@keyframes sparkle {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

/* ============ Header & Nav ============ */
header {
  position: sticky; top:0;
  background: transparent;
  backdrop-filter: blur(10px);
  display:flex; align-items:center;
  justify-content: space-between;
  padding:1rem 2rem; z-index:10;
}
#logo {
  font-size:1.5rem;
  animation:glitch 2s infinite;
  color: var(--mint);
}
@keyframes glitch {
  20% { text-shadow:-2px 0 var(--rose); }
  40% { text-shadow:2px 0 var(--sky); }
  60% { text-shadow:-2px 1px var(--lavender); }
  80% { text-shadow:2px -1px var(--mint); }
}
nav {
  display:flex; gap:1rem;
}
nav a {
  padding:.5rem 1rem;
  border-radius:8px;
  background: var(--white90);
  transition:.3s;
}
nav a:hover {
  transform:translateY(-3px);
  box-shadow:0 4px 16px rgba(0,0,0,0.1);
}

/* ============ Hero Section ============ */
#hero {
  padding:4rem 2rem; text-align:center; position:relative; z-index:2;
}
#hero h1 {
  font-size:2.5rem; color: var(--ivory);
  text-shadow:0 2px 8px rgba(0,0,0,0.2) inset;
  animation:float 6s ease-in-out infinite;
}
@keyframes float { 50% { transform: translateY(-10px); } }
#hero p {
  margin-top:1rem; color: var(--sky);
  font-size:1.1rem; border-right:2px solid var(--ivory);
  overflow:hidden; white-space:nowrap; width:0;
  animation:typing 4s steps(30) forwards 1s;
}
@keyframes typing { to { width:18ch; } }

/* ============ Layout Grids ============ */
section { padding:4rem 2rem; position:relative; z-index:2; }
#home, #portfolio, #shop {
  display:grid; gap:2rem;
}
#home, #portfolio {
  grid-template-columns: repeat(auto-fit, minmax(280px,1fr));
}
#shop {
  grid-template-columns: repeat(auto-fit, minmax(240px,1fr));
}
#projects {
  columns:3 200px; column-gap:1rem;
}

/* ============ Newsletter & Contact ============ */
#newsletter .glass, .contact-form {
  max-width:600px; margin:auto; padding:2rem;
}
#newsletter input[type="email"],
.contact-form input,
.contact-form textarea {
  width:100%; padding:.75rem;
  border-radius:8px; border:none;
  backdrop-filter:blur(10px);
  margin-bottom:1rem;
}
#newsletter button,
.contact-form button {
  padding:.75rem 1.5rem;
  border:none; border-radius:8px;
  background: linear-gradient(45deg, var(--rose), var(--sky));
  cursor:pointer; transition:transform .2s ease;
  color: #708ff3;
}
#newsletter button:hover,
.contact-form button:hover {
  transform:scale(1.05);
}

/* ============ Map Placeholder ============ */
.map {
  margin-top:2rem;
  width:100%;
  height:200px;
  background:url('images/map.png') center/cover;
  border-radius:12px;
}
