html { margin: 0; padding: 0; scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; }
.stitch-mobile { display: none; }
section[id] { scroll-margin-top: 96px; }
img { max-width: 100%; }
a:focus-visible, summary:focus-visible { outline: 3px solid #0b4dba; outline-offset: 4px; }
summary { min-height: 44px; }
.pb-safe { padding-bottom: env(safe-area-inset-bottom, 0px); }
.pt-safe { padding-top: env(safe-area-inset-top, 0px); }
.no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { scrollbar-color: transparent transparent; }

/* Tarjetas de pensamiento como burbujas/nubes */
.thought-cloud {
  position: relative;
  background: #ffffff;
  border-radius: 42px 48px 40px 44px;
  box-shadow: 0 8px 24px rgba(20, 42, 78, 0.08);
}
.thought-cloud::before,
.thought-cloud::after {
  content: "";
  position: absolute;
  left: 0;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 6px 18px rgba(20, 42, 78, 0.06);
  pointer-events: none;
}
.thought-cloud::before {
  width: 18px;
  height: 18px;
  bottom: -14px;
  left: 34px;
}
.thought-cloud::after {
  width: 10px;
  height: 10px;
  bottom: -26px;
  left: 20px;
}
@media (max-width: 767px) {
  /* Nubes de pensamiento en mobile: más compactas */
  .thought-cloud { border-radius: 26px 30px 24px 28px; }
  .thought-cloud::before { width: 14px; height: 14px; bottom: -11px; left: 26px; }
  .thought-cloud::after { width: 8px; height: 8px; bottom: -20px; left: 15px; }
  .stitch-desktop { display: none; }
  .stitch-mobile { display: block; }
  .stitch-mobile main { padding-top: calc(4rem + env(safe-area-inset-top, 0px)); padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)); }
  section[id] { scroll-margin-top: calc(80px + env(safe-area-inset-top, 0px)); }
  .stitch-mobile nav a { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
