    /* 1. ESTRUCTURA GENERAL */
    body {
      margin: 0;
      height: 100vh;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      background-color: #ffffff;
    }

    /* 2. EL ENCABEZADO Y EL BOTÓN SOBRE MÍ */
    .main-header {
      flex: 0 0 auto;
      padding: 25px 40px;
      position: relative;
      display: flex;
      justify-content: center; 
      align-items: center;
    }

    .logo-link {
      display: inline-block;
    }

    .logo-svg {
      height: 40px; 
      width: auto;
      max-width: 90%;
    }

    .about-btn {
      position: absolute;
      right: 40px;
      background: none;
      border: none;
      font-family: 'Roboto Condensed', sans-serif;
      font-weight: 700;
      font-size: 1rem;
      letter-spacing: 1px;
      cursor: pointer;
      padding: 5px 10px;
      transition: color 0.3s;
      color: #111;
      text-decoration: none;
    }

    .about-btn:hover {
      color: #e86ab2; 
    }

    .visually-hidden {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    
   /* Ajuste de header para celulares */
   @media (max-width: 767px) {
      .main-header {
        padding: 15px 20px;
        justify-content: space-between; /* Empuja un elemento a cada extremo */
      }
      
      .logo-svg {
        height: 25px; 
      }

      .about-btn {
        position: static; /* Le quitamos la posición absoluta de la versión escritorio */
        font-size: 0.85rem; 
        padding: 5px;
      }
    }

    /* 3. EL ESPACIO DE LAS FOTOS */
    main {
      flex: 1 1 0; 
      padding: 0 40px 40px 40px; 
    }

    /* 4. LA GRILLA DINÁMICA (EXPANSIVA) */
    .grid {
      display: grid;
      gap: 15px; 
      height: 100%; 
      grid-template-columns: 1fr 1fr;
      grid-template-rows: 1fr 1fr; 
      transition: grid-template-columns 0.5s cubic-bezier(0.25, 1, 0.5, 1), 
                  grid-template-rows 0.5s cubic-bezier(0.25, 1, 0.5, 1);
    }

    @media (min-width: 768px) {
      .grid:has(.item:nth-child(odd):hover) { grid-template-columns: 1.4fr 0.8fr; }
      .grid:has(.item:nth-child(even):hover) { grid-template-columns: 0.8fr 1.4fr; }
      .grid:has(.item:nth-child(-n+2):hover) { grid-template-rows: 1.2fr 0.8fr; }
      .grid:has(.item:nth-child(n+3):hover) { grid-template-rows: 0.8fr 1.2fr; }
    }

   /* Ajustes para celulares (Móvil) */
   @media (max-width: 767px) {
      /* 1. El Header que acomodamos recién */
      .main-header {
        padding: 15px 20px;
        justify-content: space-between; 
      }
      .logo-svg { height: 25px; }
      .about-btn {
        position: static; 
        font-size: 0.85rem; 
        padding: 5px;
      }

      /* 2. LA GRILLA */
      main { padding: 0 20px 20px 20px; }
      .grid {
        grid-template-columns: 1fr;
        grid-template-rows: repeat(4, 1fr); 
      }

      /* 3. NUEVO: Magia para que el "Sobre Mí" sea Fullscreen con Fade */
      #offcanvasAbout {
        width: 100vw !important; /* Ocupa el 100% del ancho de la pantalla */
        border-left: none; /* Le quitamos el borde para que sea súper limpio */
        
        /* Anulamos el efecto de deslizar (slide) */
        transform: none !important; 
        
        /* Preparamos el efecto Fade (Aparecer suavemente) */
        opacity: 0;
        transition: opacity 0.3s ease-out !important; 
      }
      
      /* Cuando Bootstrap le agrega la clase .show al abrir, activamos la opacidad */
      #offcanvasAbout.show {
        opacity: 1;
      }
      #offcanvasAbout.show {
        opacity: 1;
      }

      /* AGREGAMOS ESTO AQUÍ ADENTRO: Fondo blanco solo para móviles */
      .offcanvas-backdrop {
        background-color: #ffffff;
      }
      .offcanvas-backdrop.show {
        opacity: 0.95; 
      }
    }
      
  
    

    /* 5. LAS IMÁGENES */
    .item {
      position: relative; 
      display: block;
      overflow: hidden;
      text-decoration: none;
      background-color: #f8f9fa; /* Color de fondo por si la imagen tarda en cargar */
    }

    .item img {
      position: absolute; 
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: cover; 
      transition: transform 0.6s ease;
    }

    .item:hover img {
      transform: scale(1.05);
    }

    /* 6. LOS TEXTOS DE LAS FOTOS */
    .overlay-text {
      position: absolute;
      top: 20px;
      left: 20px;
      color: #ffffff;
      font-family: 'Roboto Condensed', sans-serif;
      font-size: 1.1rem;
      text-transform: uppercase;
      z-index: 10;
      transition: all 0.3s ease-in-out;
      text-shadow: 1px 1px 4px rgba(0,0,0,0.6);
    }

    .item:hover .overlay-text {
      font-style: italic;
      font-weight: 700;
      font-size: 1.5rem;
      text-shadow: none;
      background-color: #e86ab2; 
      padding: 0px 8px;
      transform: skewX(-10deg);
    }